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

    problema inserimento data in mysql

    Buongiorno, avrei un piccolo problemino e spero con il vostro aiuto di venirne a capo. Non riesco a fare in modo che la data venga inserita nel database. HO creato una tabella contenente il campo date di tipo date.

    Codice PHP:
    <form method="post" action="save.php">
    <?for ($i=1$i<=31$i++)
      echo 
    "<option value=\"$i\">$i</option>";
    ?>
    </select>

    <select name="mese">
    <option value="1">Gennaio</option>
    <option value="2">Febbraio</option>
    <option value="3">Marzo</option>
    <option value="4">Aprile</option>
    <option value="5">Maggio</option>
    <option value="6">Giugno</option>
    <option value="7">Luglio</option>
    <option value="8">Agosto</option>
    <option value="9">Settembre</option>
    <option value="10">Ottobre</option>
    <option value="11">Novembre</option>
    <option value="12">Dicembre</option>
    </select>

    <select name="anno">

    <option value="1">2008</option>
    <option value="2">2009</option>
    <option value="3">2010</option>
    <option value="4">2011</option>

    </select>  
    <input type="submit" value="Invia" /></form>

    E in un altro file cerco d'inserirla in questo modo



    Codice PHP:
    $giorno $_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];



    $data mktime("0""0""0",  $giorno$mese$anno); 

    per stamparla

    Codice PHP:
    $query "SELECT date FROM tabella ORDER BY id  ";

    $result mysql_query($query$db);

    while (
    $row mysql_fetch_array($result))
    {


      echo 
    "$row[data]";


    Premetto che ho omesso per ragioni di spazio il resto del codice che comunque funziona correttamente, l'unico campo che mi crea problemi è questo. Il risultato della stampa è 0000-00-00. Mi dareste gentilmente un aiutino? Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    mktime vuole i parametri in questo rigoroso ordine: mktime(ore, minuti, secondi, mese, giorno, anno)

    Poi, quando fai la select, per stampare la data in formato "italiano", creati un alias in questo modo: DATE_FORMAT(data,'%d/%m/%Y') as dataitalia



  3. #3
    Intanto grazie per avermi letto.

    Seguendo il tuo suggerimento ho corretto in

    $data = mktime("0", "0", "0", $mese, $giorno, $anno);

    se vado in phpmyadmin e vedo cosa è stato inserito, mi ritrovo la solita sfilza di zeri

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    ma il campo mysql è un campo datetime?? oppure semplicemente date??

    Se non ti interessa la gestione degli orari (e mi pare che sia così), ti conviene convertire il campo in DATE e concatenare le tre variabili (giorno mese anno) in questo modo quando effettui l'INSERT:

    $datacompleta="$anno-$mese-$giorno";

    e il gioco è fatto (l'estrazione, poi, funziona come ti ho postato prima)

  5. #5
    si il campo data è di tipo datetime.

    Se faccio come hai scritto, cioè:

    $datacompleta="$anno-$mese-$giorno";


    se devo ricercare un determinato record riferito al mese di aprile per esempio, posso farlo comunque oppure no? e se si come?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Certo che puoi farlo...

    puoi cercare una data posteriore ad una che inserisci tu:

    ... WHERE data > '2009-06-05'

    o inferiore:

    ... WHERE data < '2009-06-05'


    oppure puoi cercare una data che sia compresa tra due intervalli:


    ... WHERE data BETWEEN '2009-01-01' AND '2009-06-05'

  7. #7
    provo subito, grazie mille

    Ah scusa, un'ultima cosa, il campo data resta di tipo datetime o devo cambiarlo in altro?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    cambialo in DATE

  9. #9
    Niente ho provato a fare come mi hai detto ma ottengo ugualmente la solita sfilza di zeri, ho provato invece a settare il campo data a tipo text, così facendo la data viene inserita correttamente, mi chiedo però se posso anche in questo modo formulare una query che mi estragga determinati record in base ad un certo mese.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    In questo caso puoi soltanto effettuare ricerche su stringa, con la clausola LIKE.

    Prova a fare le seguenti cose:
    tramite phpmyadmin setta il campo a DATE.

    Poi, sempre tramite phpmyadmin, esegui la seguente query:

    INSERT INTO `tuatabella` ( `id` , ... , `data` )
    VALUES (
    NULL , ... , '2009-07-20'
    );


    dove al posto dei puntini devi inserire i nomi dei campi e i relativi valori.

    La stessa query la devi eseguire dal php quando vai ad inserire

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.