Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    16

    campi di un form che non vengono memorizzati

    ciao a tutti, spero qcuno mi possa aiutare, ho un form con delle date da inserire. Ho ampliato la tabella con copia e incolla con le relative modifiche.
    Ovviamente nel db esistono i relativi campi.
    Ho seguito gli stessi passi per entrambe le tabelle, eppure la prima (inizio nuova mostra) funziona, nella seconda (fine nuova mostra) gli inserimenti non vengono memorizzati (ma non ricevo nessun errore).

    Scusate la lunghezza del codice ma non so se e in quale dei tre file possa essere l'errore..

    questa è parte della tabella:
    Codice PHP:
    <script Language="JavaScript" src="validate.js"></script>

    <form action="<?php $_SERVER['PHP_SELF']?>" method="post" onSubmit="return form_val(this)">

    <table width="600" border="0" align="center" cellpadding="4" cellspacing="0" class="input_table">
    <tr valign="top">
        <td align="right">[b]Inizio nuova mostra:[/b]</td>
        <td><table width="390" border="0" cellpadding="0" cellspacing="0">
          <tr align="right" valign="top">
            <td width="130"><div align="right">Mese:
              <select name="ud_mese_inizionuova">
                        <option value="<?php echo $mese_inizionuova?>" selected><?php echo $mese_inizionuova?></option>
                        <option value="01">01</option>
                        <option value="02">02</option>
                        <option value="03">03</option>
                        <option value="04">04</option>
                        <option value="05">05</option>
                        <option value="06">06</option>
                        <option value="07">07</option>
                        <option value="08">08</option>
                        <option value="09">09</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                      </select>
            </div></td>
            <td width="130">Giorno:
              <select name="ud_giorno_inizionuova">
                    <option value="<?php echo $giorno_inizionuova?>" selected><?php echo $giorno_inizionuova?></option>
                    <option value="01">01</option>
                    <option value="02">02</option>
                    <option value="03">03</option>
                    <option value="04">04</option>
                    <option value="05">05</option>
                    <option value="06">06</option>
                    <option value="07">07</option>
                    <option value="08">08</option>
                    <option value="09">09</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                  </select>        </td>
            <td width="130">Anno:
              <select name="ud_anno_inizionuova">
                    <option value="<?php echo $anno_inizionuova?>" selected><?php echo $anno_inizionuova?></option>
                    <option value="<?php echo $current_year?>"><?php echo $current_year?></option>
                    <option value="<?php echo $next_year?>"><?php echo $next_year?></option>
                  </select>        </td>
          </tr>
        </table></td>
      </tr>
      <tr valign="top">
        <td align="right">[b]Fine nuova mostra:[/b]</td>
        <td><table width="390" border="0" cellpadding="0" cellspacing="0">
          <tr align="right" valign="top">
            <td width="130"><div align="right">Mese:
              <select name="ud_mese_finenuova">
                        <option value="<?php echo $mese_finenuova?>" selected><?php echo $mese_finenuova?></option>
                        <option value="01">01</option>
                        <option value="02">02</option>
                        <option value="03">03</option>
                        <option value="04">04</option>
                        <option value="05">05</option>
                        <option value="06">06</option>
                        <option value="07">07</option>
                        <option value="08">08</option>
                        <option value="09">09</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                      </select>
            </div></td>
            <td width="130">Giorno:
              <select name="ud_giorno_finenuova">
                    <option value="<?php echo $giorno_finenuova?>" selected><?php echo $giorno_finenuova?></option>
                    <option value="01">01</option>
                    <option value="02">02</option>
                    <option value="03">03</option>
                    <option value="04">04</option>
                    <option value="05">05</option>
                    <option value="06">06</option>
                    <option value="07">07</option>
                    <option value="08">08</option>
                    <option value="09">09</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                  </select>        </td>
            <td width="130">Anno:
              <select name="ud_anno_finenuova">
                    <option value="<?php echo $anno_finenuova?>" selected><?php echo $anno_finenuova?></option>
                    <option value="<?php echo $current_year?>"><?php echo $current_year?></option>
                    <option value="<?php echo $next_year?>"><?php echo $next_year?></option>
                  </select>        </td>
          </tr>
        </table></td>
      </tr>
    </table>

    <input type="Submit" value="<?php echo $submit_label?>" name="submit">

    </form>
    questa parte della pagina che richiama il form:
    Codice PHP:
    $ud_mese_inizionuova=$_POST['ud_mese_inizionuova'];
    $ud_giorno_inizionuova=$_POST['ud_giorno_inizionuova'];
    $ud_anno_inizionuova=$_POST['ud_anno_inizionuova'];
    $ud_mese_finenuova=$_POST['ud_mese_finenuova'];
    $ud_giorno_finenuova=$_POST['ud_giorno_finenuova'];
    $ud_anno_finenuova=$_POST['ud_anno_finenuova'];


    $query "UPDATE events SET id = '$id',  titolonuova = '$ud_titolonuova', mese_inizionuova = '$ud_mese_inizionuova', giorno_inizionuova = '$ud_giorno_inizionuova', anno_inizionuova = '$ud_anno_inizionuova', mese_finenuova = '$ud_mese_fineonuova', giorno_finenuova = '$ud_giorno_fineonuova', anno_finenuova = '$ud_anno_fineonuova' WHERE id = '$id'";

    $rt=mysql_query($query);
    ecc 
    e parte del file db
    Codice PHP:
    mysql_connect($dbhost,$dbuser,$dbpass) OR DIE ('Unable to connect to database! Please try again later.');
    mysql_select_db($dbname) or die( "Unable to select database");

    $query=" SELECT * FROM events WHERE id='$id'";
    $result=mysql_query($query);
    $num=mysql_numrows($result);
    mysql_close();

    $i=0;
    while (
    $i $num) {

    $mese_inizionuova=mysql_result($result,$i,"mese_inizionuova");
    $giorno_inizionuova=mysql_result($result,$i,"giorno_inizionuova");
    $anno_inizionuova=mysql_result($result,$i,"anno_inizionuova");
    $mese_finenuova=mysql_result($result,$i,"mese_finenuova");
    $giorno_finenuova=mysql_result($result,$i,"giorno_finenuova");
    $anno_finenuova=mysql_result($result,$i,"anno_finenuova");

    $i++;
    }


  2. #2
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Ciao. Non ho trovato l'errore, però ho notato che hai recuperato i dati con mysql_result dopo aver chiuso la connessione con mysql_close. Magari mi sbaglio io, ma non pensavo che potessi farlo. Sei sicuro che funziona in questo modo?

    Poi quando modifichi gli eventi prova a stampare mysql_error per vedere se c'è qualche errore:
    Codice PHP:
    $query "UPDATE events SET id = '$id',  titolonuova = '$ud_titolonuova', mese_inizionuova = '$ud_mese_inizionuova', giorno_inizionuova = '$ud_giorno_inizionuova', anno_inizionuova = '$ud_anno_inizionuova', mese_finenuova = '$ud_mese_fineonuova', giorno_finenuova = '$ud_giorno_fineonuova', anno_finenuova = '$ud_anno_fineonuova' WHERE id = '$id'";

    $rt=mysql_query($query) or die(mysql_error()); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    16
    provato, nessun errore..

    per quanto riguarda mysql_close, il file era già così e funzionava, anzi funziona ancora per gli altri campi. soltanto "mese" "giorno" e "anno" della voce "fine nuova mostra" quando li inserisco mi risponde che tutto è andato ok, secondo l'istruzione:
    Codice PHP:
    $rt=mysql_query($query);

    if (
    $rt) {echo "<center><h1>Evento inserito!</h1> </center>"; }

    else { 
    mysql_error(); } 

    mysql_close();


    ma quando vado a controllare i campi (e solo quei tre) sono di nuovo vuoti
    sono confuso..

  4. #4
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Va bene, se mi dici che mysql_result si può usare dopo mysql_close e funziona mi fido. Comunque per quanto riguarda mysql_error, la funzione riporta come risultato una stringa ma non la stampa a video quindi devi fare echo mysql_error(); oppure die(mysql_error());
    Poi accedi a phpmyadmin e controlla che quei campi nelle righe interessate siano effettivamente vuoti oppure non riesci solamente a prelevare il valore quando mostri i risultati.
    Inoltre se puoi dirmi tutta la struttura della tabella del db con anche i tipi di campi è meglio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    16
    grazie costi.

    allora, provato come dici tu sia con echo che con die, nessun errore.
    riandando a controllare (l'avevo già fatto) phpmyadmin, i campi sono vuoti.
    tra l'altro, se li riempio da phpmyadmin poi nel form compaiono, però se risalvo sempre dal form scompaiono di nuovo.

    struttura del db:

    (text e varchar sono tutti latin1_swedish_ci)

    (campo
    tipo
    null)

    id
    int(6)
    No

    event
    text
    No

    hour
    varchar(2)
    No

    minute
    varchar(2)
    No

    ampm
    varchar(2)
    No

    titolonuova
    text
    No

    month_opening
    varchar(2)
    No

    day_opening
    varchar(2)
    No

    year_opening
    varchar(4)
    No

    hour_opening
    varchar(2)
    No

    minute_opening
    varchar(2)
    No

    ampm_opening
    varchar(2)
    No

    mese_inizionuova
    varchar(2)
    No

    giorno_inizionuova
    varchar(2)
    No

    anno_inizionuova
    varchar(4)
    No

    mese_finenuova
    varchar(2)
    No

    giorno_finenuova
    varchar(2)
    No

    anno_finenuova
    varchar(4)
    No

    month
    varchar(2)
    No

    day
    varchar(2)
    No

    year
    varchar(4)
    No

    month_end
    varchar(2)
    No

    day_end
    varchar(2)
    No

    year_end
    varchar(4)
    No

    month_show
    varchar(2)
    No

    day_show
    varchar(2)
    No

    year_show
    varchar(4)
    No

    location
    varchar(255)
    No

    address
    varchar(255)
    No

    town
    varchar(255)
    No

    email
    varchar(100)
    No

    phone
    varchar(20)
    No

    link
    varchar(255)
    No

    link_name
    varchar(255)
    No

    description
    text
    No

    descriznuova
    text
    No

    html
    text
    No

  6. #6
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    I tipi di dati della tabella mi sembrano corretti. Se dopo che li hai modificati con phpmyadmin compaiono nel form ma una volta inviati scompaiono di nuovo vuol dire probabilmente che quando li vai a salvare con la query le variabili $ud_mese_finenuova, $ud_giorno_finenuova e
    $ud_anno_finenuova sono vuote.
    Per vedere se è così prima della query con update fai in questo modo:

    Codice PHP:
    $ud_mese_inizionuova=$_POST['ud_mese_inizionuova'];
    $ud_giorno_inizionuova=$_POST['ud_giorno_inizionuova'];
    $ud_anno_inizionuova=$_POST['ud_anno_inizionuova'];
    $ud_mese_finenuova=$_POST['ud_mese_finenuova'];
    $ud_giorno_finenuova=$_POST['ud_giorno_finenuova'];
    $ud_anno_finenuova=$_POST['ud_anno_finenuova'];

    echo 
    'Mese: '.$ud_mese_finenuova.'
    '
    ;
    echo 
    'Giorno: '.$ud_giorno_finenuova.'
    '
    ;
    echo 
    'Anno: '.$ud_anno_finenuova.'
    '

    Dimmi cosa ti appare poi.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    16
    prima di stampare "evento inserito!"
    mi stampa questo:

    Mese: 03
    Giorno: 06
    Anno: 2012

  8. #8
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Ma certo! Eureka! Come ho fatto a non notarlo prima! Dopo che ho capito che le variabili hanno il giusto valore ma vengono salvate come vuote nel database, sono andato a rileggere la query con attenzione. Alla fine l'errore è spesso dovuto al motivo più semplice, un errore di battitura.
    Ti evidenzio in rosso gli errori di battitura nella query:

    UPDATE events SET id = '$id', titolonuova = '$ud_titolonuova', mese_inizionuova = '$ud_mese_inizionuova', giorno_inizionuova = '$ud_giorno_inizionuova', anno_inizionuova = '$ud_anno_inizionuova', mese_finenuova = '$ud_mese_fineonuova', giorno_finenuova = '$ud_giorno_fineonuova', anno_finenuova = '$ud_anno_fineonuova' WHERE id = '$id'

    Hai notato ora? Hai sbagliato a scrivere i nomi delle 3 variabili, hai messo "fineonuova" anzichè "finenuova".

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    16
    sono proprio un fagiano!

    l'ho controllato più volte e l'ho pure riscritto!!!!!
    evidentemente rifacendo lo stesso errore!

    a volte quando ci stai troppo su una cosa alla fine si perde lucidità..
    vabbè
    GRAZIE!

  10. #10
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    E' vero che a pensare troppo come risolvere un problema senza fare pause fa perdere la concentrazione. Bisogna staccare ogni tanto e riprendere in mano il problema dopo tempo.

    Comunque prego, non c'è di che.


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.