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

    Differenze data PHP/MySql

    Salve, la mia situazione è la seguente:
    Ho un db mysql in cui ho creato una tabella che ha un campo di tipo DATE
    In un form html prendo 3 parametri tramite post, che sono giorno mese e annoe vorrei inserirli nel db nel campo di tipo DATE.
    Come faccio a creare un formato che vada bene al mysql?

    Spero di essermi spiegato bene
    Ciao
    Alessio_Programmer

  2. #2
    Basta assemblare i pezzi. Ipotizzo che tu abbia chiamato i campi del form 'giorno', 'mese', 'anno'.

    $data = $_POST['anno'] . "-" . $_POST['mese'] . "-". $_POST['giorno'];

    Ovviamente i campi devono essere nel formato AAAA-MM-GG.

    Ciau
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  3. #3
    MySQL chiama il tipo del dato Date, ma ha solo due tipi di dati in realtà: NUMBER e CHAR (che sarebbe poi un numero che sta a significare un carattere, ma non è questo il punto).

    Le date, i time, i timestamp, i datetime contengono tutti dei caratteri che non sono numerici (basti pensare a 2008-07-23, la data di oggi, come si vede contiene due "-"), quindi deve essere salvata come CHAR. Dal punto di vista di MySQL le date sono stringhe di caratteri, quindi per manipolare una data devi solo inserire una stringa formattata secondo lo standard americano: YYYY-MM-DD

    Dove YYYY è anno a 4 cifre, MM, mese a due cifre (quindi gennaio è 01) e DD è giorno a 2 cifre (01 anche quello se è meno di 10)

    Questo è per la data, se invece usi timestamp, che hanno anche l'ora, devi fare: YYYY-MM-DD HH:MM:SS.mmm
    Dove HH sta per ora a due cifre (da 00 a 23), MM per minuti a due cifre, SS secondi e mmm sono i millisecondi (non mi ricordo se è così preciso MySQL, ma altri DB lo sono)

    Parementi, il tipo TIME è solo una stringa con 'HH:MM:SS'

    Quando fai la tua query, passa semplicemente la data come se fosse una stringa:

    Es.

    "INSERT INTO MY_TABLE (id, date) VALUES (1, '2008-07-23')"

  4. #4
    Eccellente...siete stati chiarissimi!!Ho capito perfettamente.
    Vi ringrazio molto!
    Ciao ciao
    Alessio_Programmer

  5. #5
    Scusate stavo provando quello che mi avete detto. Mi da errore nell'esecuzione della query, non capisco perche. Forse sara una distrazione, se potreste aiutarmi....

    Codice PHP:
    $birth=$birthyear.$birthmonth.$birthday;
    $registration=date("y-m-d");

    $query="insert into users_temp(username,password,name,surname,email,nation,birth,gender,city,description,registration) values('" $nickname "','" md5($password) . "','"$name ."','".$surname."','".$email."','".$nation."',".$birth.",'".$gender."','".$city."','".$description."',".$registration.")"
    Grazie
    Alessio_Programmer

  6. #6
    Perché deve essere una stringa, quindi tra ' '
    Inoltre date("y-m-d") mi sembri dia 08-07-23 che non è giusto devi usare Y-m-d

  7. #7
    Si perfetto!!!ora funziona!
    Vi ringrazio moltissimo di nuovo!
    Alessio_Programmer

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.