campo numerico form se lasciato vuoto torna errore....

ciao, sto ultimando un codice per l'aggiornamento di una sezione di un sito. ho un form per l'inserimento di vari dati. ho implementato in un campo una checkbox che dovrebbe consentirmi un opzione (ma ancora non funzia). cmq opzione a parte, il campo in questione, crediti, se lo scrivo funziona, ma se lo lascio vuoto mi torna un errore. il che è strano perchè a me sembra uguale a un altro campo che è scritto allo stesso modo e se lasciato vuoto non torna alcun errore....

codice che non torna errori:

if ($_POST['numero_partecipanti'])
            {
            $numero_partecipanti = $_POST['numero_partecipanti'] ? "'".trim($_POST['numero_partecipanti'])."'" : null;
            }
            if ($numero_partecipanti)
            {
               if (!ereg("[0-9]{1,2}", $numero_partecipanti)){
                  echo "Numero partecipanti non valido!";
               }
            }
            else
            {
               $numero_partecipanti = 'NULL';
            }

codice del campo crediti che se lasiato vuoto torna errore:

if ($_POST['crediti'])
            {
               if ($_POST['accreditamento']==true)
               {
                  $crediti=-1; 
               }
               else
               {
                  $crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" : null;
               }
               if ($crediti)
               {
                  if (!ereg("[0-9]{1,2}", $crediti))
                  {
                     echo "Crediti non validi!";
                  }
               }
               else
               {
                  $crediti = 'NULL';
               }
            }

errore del campo crediti:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '222.00', NOW())' at line 2
inviato 8 anni fa
gabar-el
X 0 X

L'errore che ricevi parla di una query contenente un errore di sintassi. nel codice che hai riportato non mi sembra ci sia la query incriminata quindi non saprei come aiutarti.

Comunque in generale questo tipo di errori vanno corretti stampando la query prima di eseguirla, in modo da vedere cosa viene dato in pasto a mysql

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

grazie delle info gianni.

ho risolto così:

if ($_POST['accreditamento']==true)
               {
                  $crediti=-1; 
               }
               else
               {
                  $crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" : null;
               }
               if ($crediti)
               {
                  if (!ereg("[0-9]{1,2}|-1", $crediti))
                  {
                     echo '<p class="avvisi">Crediti non validi!</p>';
                  }
               }
               else
               {
                  $crediti = 'NULL';
               }
risposto 8 anni fa
gabar-el
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda