Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Numerazione progressiva annuale

    Ciao a tutti,
    avrei la necessità di creare una numerazione che si resetti ogni anno.

    avevo pensato a questa tipologia : 0001/2015

    come è possibile realizzarla ???


    Grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Manca qualche informazione... quando la devi creare? in inserimento di un nuovo record? devi necessariamente mettere la scritta risultante in un unico campo?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Scusatemi.
    Devo crearla al momento in cui inserisco il record e poi visualizzarla quando vado a visualizzare il record con il numero progressivo ed altri dati legati allo stesso.

  4. #4
    Mi viene in mente che potresti utilizzare una sequenza per creare la prima parte della numerazione e imporre che la seconda parte corrisponda all'anno corrente. In oralce ad esempio esiste per le sequenza l'opzione cycle ma non so se ti conviene perchè questa opzione non può essere impostata per data ma per massimo progressivo raggiungibile (e non credo che tu lo sappia a priori). Però per ovviare a questo problema potresti creare una procedura (da schedulare una volta all'anno, ad esempio il 01.01 di ogni anno) che resetti la sequenza.

  5. #5
    Grazie Saretta x le tue info.
    Preferirei una procedura diversa per non avere robe mi al cambio anno.
    forse dovrei fare un numero incrementale aggiungendo 1 al valore massimo inserendo l'anno come suffisso e resettare quando si cambia anno. In access so come fare ma in php no :-(
    o dovrei farlo in js???
    chi mi può fare una mano?
    grazie

  6. #6
    Visto che hai scritto nella sezione "Database" pensavo volessi farlo da db non da php.
    Cmq in php potresti fare:
    Se in tabella hai un campo per il progressivo e un campo per l'anno potresti da php fare una query che prende il max progressivo con condizione anno=anno_corrente.
    Se il risultato della query è un numero lo incrementi di uno (nella visualizzazione concateni come suffisso l'anno, nella tabella scrivi il valore che ti sei calcolato nel campo progressivo e l'anno nel campo anno - metterli in campi separati sul db è più semplice per le query e in fase di visualizzazione non cambia niente).
    Se la query non restituisce risultato significa che siamo al cambio dell'anno e ancora non sono stati inseriti progressivi per quell'anno. Perciò ricominci la seguenza impostando il valore uguale a 1.
    Non sono se sono stata chiara.
    Se posti un pò di codice posso aiutarti provare ad aiutarti meglio.

  7. #7
    quindi la tabella deve essere la seguente id (chiave primaria, progressiva) numero_prog anno


    codice:
    $anno = date(Y); sql = $db->prepare("SELECT MAX(numero_prog) WHERE anno=$anno") sql->execute; if (sql > 0) { $num_progressivo =sql++} else {$num_progressivo=0001}

    poi vado a fare l'insert nella tabella.

  8. #8
    Esattamente.
    L'idea è questa, l'unica cosa è che non so se la sintassi è corretta...è da tanto che non lavoro con php e mysql...adesso utilizzo oracle perciò non mi ricordo!! -.-''
    Non so se la condizione nell'if è corretta. sql > 0 può farlo sempre???
    Cioè quando nella tabella nessun record verifica la condizione anno=$anno...il max cosa restituisce? Zero oppure va in errore? Sinceramente non mi ricordo come lo gestisce...però puoi fare delle prove.
    Se ti restituisce Zero non ci sono problemi, se va in errore e non riesci a gestirlo con le funzionalità di mysql lato php puoi utilizzare uno stupido escamotage.

  9. #9
    Vorrei scriverti qual'è l'escamotage ma non mi fa inviare il testo che ho scritto -.-''
    mi va in errore e non riesco a capire perchè...se dovesse servirti ricorrere al trucchetto mandami in privato la tua mail che ti scrivo lì

  10. #10
    Sicuramente la sintassi potrebbe essere non corretta visto che l'ho scritta al volo.
    Appena la provo rispondo inserendo il codice corretto cosi potrà essere d'aiuto ad altri.

    Grazie Saretta

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 © 2025 vBulletin Solutions, Inc. All rights reserved.