• User Attivo

    inserire data nascita in db mysql

    Salve ennesimo quesito 🙂
    Ho 3 <select> per gg/mm/yyyy che rappresentano la data di nascita del mio utente.
    Ora in 'scrividata.php' ho:

    $gg=$_POST['giorno'];
    $mm=$_POST['mese'];
    $yy=$_POST['anno'];
    if checkdate($$mm,$gg,$yy){$dataN=$gg.'/'.$mm.'/'.$yy;}
    
    //INSERT INTO
    blablabla.... insert into tab_utenti(datanascita) VALUES ('$dataN')";
    
    

    ...se vado a dare un'occhiata nel database la data non me la memorizza per niente 😞 (il campo è di tipo DATETIME come separatori usa i trattini ...)

    dove sbaglio ?

    Thanks all :yuppi:


  • Bannato User Attivo

    Io le date di solito le tratto con un varchar(8) del tipo:

    15 febbraio 2008 -> 20080215

    Nel database salvo quindi il avlore 20080215 in un varchar(8)

    Quando poi estraggo i valori dal DB, supponendo di avere una data estratta in $dataEstratta eseguo:

    $data=substr($dataEstratta,4,0)."/".substr($dataEstratta,2,4)."/".substr($dataEstratta,2,6);


  • Consiglio Direttivo

    Ciao Gandalf

    prova ad inserirla nel formato inglese, e magari prova come solitamente faccio io:
    [PHP]$data=$yy."-".$mm."-".$gg;
    $sql="INSERT INTO table (datanascita) VALUE ('$data')";
    [/PHP]
    facci sapere se risolvi 😉


  • User Attivo

    Grazie Samyorn ho risolto col tuo suggerimento 😉 ma anke quello di buccia81 non era malvagio ... tra le 2 scuole di pesiero quale pensate sia la migliore ? :mmm:

    thanks all :yuppi:


  • Moderatore

    Samyorn per l'unico motivo che non fà processare la data a php e rende il tutto più veloce 😉


  • User Attivo

    🙂 *massimux *che bello vederti ovunque :fumato: sei onnipresente !!!!

    Grazie ragazzi :yuppi:

    P.S.
    Appena puoi spara pure un bel titolo [book]... (vedi post sulle classi)


  • Bannato User Attivo

    Salve.
    Il mio modo di trattare le date è nato dalla necessità di avere le righe del DB prdinate per data. Infatti uso spesso la data come discriminante per l'estrazione.
    Usando la forma yyyymmdd ottengo un valore della data sempre crescente. Es:

    Ierilaltro: 20080213 (Venti milioni e ottantamila duecentrotredici)
    Ieri: 20080214 (Venti milioni e ottantamila duecentroquattordici)
    Oggi: 20080215 (Venti milioni e ottantamila duecentroquindici)

    Se si deve usare la data solo per stamparla a video, tanto vale memorizzarla come giustamente dite già formattata con i separatori "-" e "/".
    Se invece si usa la data per discriminare altre operazioni, a mio avviso la data scritta in quella forma fa molto comodo.

    Da non trascurare che io posso memorizzare la mia data in un VARCHAR(8) o in un INT(8). Se invece la formatto con i separatori devo memorizzarla in un VARCHAR(10).