Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Generare numero progressivo per fatture

    Ciao,

    dovrei generare un numero progressivo (a partire da 01) da inserire nelle fatture.

    Le fatture le salvo su una tabella database. Ogni record è identificato da un ID.
    Come posso fare per generare un numero progressivo (rispetto alla fattura precedente) e salvarlo nel relativo campo della tabella del database.

    Esempio pratico:
    Nella pagina crea_fattura.php inserisco la fattura. In automatico lo script me lo identifica come prima fattura e me la salva su db al campo Numero_Fattura come 01.

    Esco dal browser, giro un pò per la stanza, ritorno al PC riapro la pagina crea_fattura.php ed inserisco un altra fattura. Lo script a questo punto deve identificarmela automaticamente e registrarla a database con Numero_Fattura uguale a 02.

    ecc ecc...

    Mi riuscite a dare una mano?

    Grazie.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,452
    Potrebbe bastarti definire autoincrement la colonna Numero_Fattura della tabella nel db?

  3. #3
    Eh ma in caso di cancellazione della fattura (supponiamo un errore) ho necessità che il numero fattura resti progressivo e immediatamente superiore rispetto all'ultima inserita...l'auto increment non continua "a contare"? (potrei sbagliarmi)

    Esempio con AI:
    Fatt. 01
    Fatt. 02 (cancellata per errore)

    Creo una nuova fattura e mi viene registrata come
    Fatt. 03 e non come Fatt. 02.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    basta che fai una select max(numero) e scopri l'ultima fattura. Ovviamente devi usare anche una lock table altrimenti ci sono problemi di concorrenza e potresti trovarti con 2 fatture con lo stesso numero.
    No pvt per sollecitare risposte, grazie.

  5. #5
    codice:
    $query1= "SELECT MAX (Numero_Fattura) AS Numero_Fattura FROM db_fatture";
    $result1 = mysql_query($query1);
    Non mi restituisce niente. Sbaglio nella sintassi?

  6. #6
    Risolto:
    codice:
    $query1= "SELECT MAX(Numero_Fattura) AS Numero_Fattura FROM db_fatture";
    $result1 = mysql_query($query1);
    c'era uno spazio di troppo tra MAX e (Numero_Fattura)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Codice PHP:
    mysql_query($query1) or die(mysql_error()); 
    Metti sempre la segnalazione degli errori nelle query, così ti accorgi se hai sbagliato qualcosa.
    E inoltre ricordati il discorso del blocco della tabella, altrimenti rischi di dare lo stesso numero a 2 fatture diverse, in caso di accessi concorrenti.
    No pvt per sollecitare risposte, grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.