Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33

    problemi con date nel database mysql

    ciao a tutti
    ho un problema, non riesco a far inserire la data, compilata tramite 3 tendine a discesa, nel database.
    HO provato a fare una stampa di quello che mi esce e noto che quello che mi causa problemi è il giorno.
    Il campo nel database ha la funzione date.

    Vi posto i 2 file solo la parte interessata

    nuovo_appuntamento.php
    Codice PHP:
    <?php             
    $giorno 
    = array('01'=>01'02'=>02'03'=>03'04'=>04'05'=>05'06'=>06'07'=>07'08'=>08'09'=>09'10'=>10'11'=>11'12'=>12'13'=>13'14'=>14'15'=>15'16'=>16'17'=>17'18'=>18'19'=>19'20'=>20'21'=>21'22'=>22'23'=>23'24'=>24'25'=>25'26'=>26'27'=>27'28'=>28'29'=>29'30'=>30'31'=>31); 

    $mese =  array('01'=>"Gennaio"'02'=>"Febbraio"'03'=>"Marzo"'04'=>"Aprile"'05'=>"Maggio"'06'=>"Giugno"'07'=>"Luglio"'08'=>"Agosto"'09'=>"Settembre"'10'=>"Ottobre"'11'=>"Novembre"'12'=>"Dicembre"); 

    $date = new DateTime();
    $annoCorrente $date->format('Y'); 
    ?>

    <tr><td> Data </td>
    <td>
    <select name="giorno">
    <option value="0">...</option>
    <?php
    for ($giorno=1;$giorno<32;$giorno++){
    echo "<option value=\" ".$giorno." \">".$giorno."</option>";
    }
    ?>
    </select>

    <select name="mese">
    <option value="0">...</option>
    <?php

    foreach ($mese as $k => $v){
    echo "<option value=\" ". $k ." \">". $v ."</option>";
    }
    ?>
    </select>

    <select name="anno">
    <option value="0">...</option>
    <?php

    for ($i=0;$i<=100;$i++){
    echo "<option value=\" ".$annoCorrente." \">".$annoCorrente."</option>";
    $annoCorrente -= 1;
    }
    ?>
    </select>
    </td>
    </tr>


    registrazione_appuntamento.php

    Codice PHP:
    <?php 
    $data_registrazione 
    date("Y-m-d H:i:s");

    .....    

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

    ............
    ............
    ..........
            
    $query "insert into appuntamenti" "(oggetto, data, id_lingua, testo, data_registrazione)" .             "VALUES('" $_REQUEST['oggetto'] . "', '" $data "', '" $_REQUEST['lingua'] . "', '" $_REQUEST['testo'] . "', '" $data_registrazione "')";

    if(!
    mysql_query($query$db)) {
        print(
    "Attenzione, impossibile inserire il record");             
    } else {
         print(
    "Hai completato il formulario senza problemi. I tuoi dati sono stati registrati."); 
    }         
    mysql_close($db);
    Chi mi sa dare una mano?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33
    Modifica fatta
    però non mi funziona ora sto provando a fare una cosa vedo se funziona

    Niente da fare... ho modificato il file dove creo gli array in questo modo
    $giorno = array('01'=>'01', '02'=>'02',....

    Motivo per cui non mi inserisce la data nel db?

  4. #4
    Fai un echo delle tre variabili che compongono la data e vedi se son piene...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33
    Ho risolto!
    Avevo dei problemi nel form...avevo degli spazi..e per quello che non mi inseriva la data. Posto i pezzi di codice che possono interessare.


    Codice PHP:
    <?php
    $giorno 
    = array('01'=>'01''02'=>'02''03'=>'03''04'=>'04''05'=>'05''06'=>'06''07'=>'07''08'=>'08''09'=>'09''10'=>'10''11'=>'11''12'=>'12''13'=>'13''14'=>'14''15'=>'15''16'=>'16''17'=>'17''18'=>'18''19'=>'19''20'=>'20''21'=>'21''22'=>'22''23'=>'23''24'=>'24''25'=>'25''26'=>'26''27'=>'27''28'=>'28''29'=>'29''30'=>'30''31'=>'31');
    $mese =  array('01'=>"Gennaio"'02'=>"Febbraio"'03'=>"Marzo"'04'=>"Aprile"'05'=>"Maggio"'06'=>"Giugno"'07'=>"Luglio"'08'=>"Agosto"'09'=>"Settembre"'10'=>"Ottobre"'11'=>"Novembre"'12'=>"Dicembre");
    $date = new DateTime();
    $annoCorrente $date->format('Y');
    ?>
    <tr><td> Data </td>
    <td>
    <select name="giorno">
    <option value="0">...</option>
    <?php
    foreach ($giorno as $k => $v){
    echo "<option value=\"".$k."\">".$v."</option>";
    }
    ?>
    </select>

    <select name="mese">
    <option value="0">...</option>
    <?php

    foreach ($mese as $k => $v){
    echo "<option value=\"".$k."\">".$v."</option>";
    }
    ?>
    </select>

    <select name="anno">
    <option value="0">...</option>
    <?php

    for ($i=0;$i<=100;$i++){
    echo "<option value=\"".$annoCorrente."\">".$annoCorrente."</option>";
    $annoCorrente -= 1;
    }
    ?>
    </select>
    </td>
    </tr>


    nel file di inserimento nel db ho fatto così:

    Codice PHP:
    <?php
    $data_registrazione 
    date("Y-m-d H:i:s");
    $oggetto trim(stripslashes($_POST['oggetto']));         
    $giorno $_POST['giorno'];
    $mese $_POST['mese'];
    $anno $_POST['anno'];
    $data $anno '-' $mese '-' $giorno ' 00:00:00';
    ...........
    ?>

  6. #6
    Scusami, per curiosita', mi spieghi che senso ha questo array?

    codice:
    $giorno = array('01'=>'01', '02'=>'02', '03'=>'03', '04'=>'04', '05'=>'05', '06'=>'06', '07'=>'07', '08'=>'08', '09'=>'09', '10'=>'10', '11'=>'11', '12'=>'12', '13'=>'13', '14'=>'14', '15'=>'15', '16'=>'16', '17'=>'17', '18'=>'18', '19'=>'19', '20'=>'20', '21'=>'21', '22'=>'22', '23'=>'23', '24'=>'24', '25'=>'25', '26'=>'26', '27'=>'27', '28'=>'28', '29'=>'29', '30'=>'30', '31'=>'31');

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33
    Semplicemente per far si che mi inserisca la data 2009-01-01.

    Questo array lo riprendo nel form nella tendina a discesa per selezionare i giorni.
    Se facevo un semplicissimo for mi usciva 1,2,3,4,5,6... e non mi inserirva la data nel db.

    NOn sapevo come altro fare.

  8. #8
    Codice PHP:
    for ($x 1$x <= 31$x++) {
        
    printf("%02d"$x);
        echo 
    "\n";


  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33
    Grazie mille.

    Codice PHP:
    for ($x 1$x <= 31$x++) {
         
    printf("%02d"$x);     
         echo 
    "\n"
         echo 
    "<option value=\"".$x."\">".$x."</option>"


  10. #10
    Non esattamente:

    Codice PHP:
    for ($x 1$x <= 31$x++) {
        
    $num sprintf("%02d"$x);
        echo 
    "<option value=\"$num\">$num</option>\n"

    tra l'altro non ho mai capito l'abitudine diffusa in questo forum di concatenare stringhe quando non e' necessario: non e' mica vietato mettere variabili all'interno delle virgolette

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.