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

    Problemi con campi form vuoti

    Ho un form con dei campi. Alcuni di questi campi possono anche rimanere vuoti, non devono necessariamente essere riempiti. Il problema é che lasciando il campo vuoto, mi esce fuori un errore "Data truncated for column 'km' at row 1".

    La colonna km della mia tabella é di tipo float e di default é NULL perché allora, se non inserisco dati mi segnala errore?.. Il null non dovrebbe corrispondere al niente? o il niente corrisponde agli apici singoli? '' . Eventualmente come creo una colonna che possa accettare anche il niente?..

    Con le colonne tipo text non ho problemi..

    Prima di scrivere qui, ho cercato anche negli script del sito ma non ho trovato nulla (ho controllato solo le prime 8 pagine..)

    grazie

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    posta il codice php dove vai a fare l'insert

  3. #3
    codice:
    <?php
    
    include("connect.php");
    
    $ora=$_REQUEST["ora"];
    $luogo=$_REQUEST["luogo"];
    $km=$_REQUEST["km"];
    $evento=$_REQUEST["evento"];
    $gasolio=$_REQUEST["gasolio"];
    $adblue=$_REQUEST["adblue"];
    $sr=$_REQUEST["sr"];
    $note=$_REQUEST["note"];
    
    $sql="INSERT INTO movimenti(ora,luogo,km,evento,gasolio,adblue,id_sr,note) VALUES('$ora','$luogo','$km','$evento','$gasolio','$adblue','$sr','$note')";
    
    if(isset($_REQUEST['invia']) && $_REQUEST['invia']=="INVIA")
    {
    mysql_query($sql) or die(mysql_error());
    }
    
    ?>

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    se invece ci inserisci qualcosa di corretto non ti da errore?

  5. #5

  6. #6
    A prescindere che recuperare dati dall'array $_REQUEST è sconsigliabile per motivi di sicurezza, i possibili errori (che non si vedono nel poco codice che hai scritto) possono essere dovuti a:

    1. nella colonna km vai ad inserire NULL come stringa (usando degli apici quindi), mentre la colonna accetta solo numeri in virgola mobile;
    2. nella colonna km usi un carattere separatore dei decimali non previsto dal tipo di dato che si aspetta la colonna;
    3. inserisci il valore in KM come se fosse una stringa.

    A giudicare da quello che dici, e da quello che leggo nel codice che hai postato, l'errore del tipo 3.

    Se passi la variabile $km all'interno di apici, verrà considerata come una stringa, e quindi MySQL non ti accetterà la query.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ok cmq '' non è equivalente a null

    quindi potresti fare una cosa del genere (non è l'unica soluzione e non so se è la migliore)

    Codice PHP:
    if(!isset($_REQUEST["km"]) || $_REQUEST["km"]=="")
    {
           
    $km=NULL;
    }
    else
    {
          
    $km=$_REQUEST["km"];

    inoltre togli gli apici a '$km'
    Codice PHP:
    $sql="INSERT INTO movimenti(ora,luogo,km,evento,gasolio,adblue,id_sr,note) VALUES('$ora','$luogo',$km,'$evento','$gasolio','$adblue','$sr','$note')" 

  8. #8

    Re: Problemi con campi form vuoti

    Originariamente inviato da timberwolf
    [...] Il null non dovrebbe corrispondere al niente? o il niente corrisponde agli apici singoli? ''[...]
    NULL non è una stringa vuota!
    NULL è un valore specifico che indica assenza di valore!

    Nella creazione della tabella, puoi indicare che una particolare colonna possa accettare valori NULL (o meglio: l'esatto contrario, cioè che NON possa accettare questi valori), o che abbia NULL di default.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    ok provo e vi faccio sapere grazie

  10. #10
    mi restituisce questo errore:

    codice:
    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 ''frontiera',20,50,'8','si comincia!', '2011-04-10')' at line 1
    il codice corretto con quello postato precedentemente é:

    codice:
    <?php
    
    include("connect.php");
    
    $ora=$_REQUEST["ora"];
    $luogo=$_REQUEST["luogo"];
    $km=$_REQUEST["km"];
    $evento=$_REQUEST["evento"];
    $gasolio=$_REQUEST["gasolio"];
    $adblue=$_REQUEST["adblue"];
    $sr=$_REQUEST["sr"];
    $note=$_REQUEST["note"];
    
    if(!isset($_REQUEST["km"]) || $_REQUEST["km"]=="")
    {
           $km=NULL;
    }
    else
    {
          $km=$_REQUEST["km"];
    }
    
    $sql="INSERT INTO movimenti(ora,luogo,km,evento,gasolio,adblue,id_sr,note) VALUES('$ora','$luogo',$km,'$evento',$gasolio,$adblue,'$sr','$note')";
    
    if(isset($_REQUEST['invia']) && $_REQUEST['invia']=="INVIA")
    {
    mysql_query($sql) or die(mysql_error());
    }
    
    ?>

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.