Visualizzazione dei risultati da 1 a 10 su 10

Discussione: variabile a null ?

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    variabile a null ?

    Ciao ..
    come mai una variabile valorizzata da un campo di input di un form non valorizzato NON risulta essere a null ?

    Mi aspettavo che il campo utilizzato per fare un'insert in un data base su un campo che non può essere a null mi desse errore .. e invece tutto fila correttamente !

    eseguendo dei test mi viene segnalato come NON a null ma 'vuoto' !

    $autore = $_POST ['autore'] ;

    if (is_null($autore))
    {echo "autore a null";}
    else
    {echo "autore NON a null:" . $autore;}

    echo "
    " ;
    if (empty($autore))
    {echo "autore vuoto";}
    else
    {echo "autore NON vuoto:" . $autore;}

  2. #2
    Perchè anche se vuota, la stringa viene passata.
    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    ho capì .. garzie.

    ma a stò punto sarei curioso di sapere come si fà per attribuire ad una variabile il valore 'null'

  4. #4
    $var = null
    Ma una variabile da POST arriva sempre vuota, ma arriva. O non arriva per niente, ma in questo caso hai un notice.

    Non arriva solo nel caso di un checkbox non spuntato.

    al limite gli cambi il valore tu.
    Ciao!

  5. #5
    e comunque tu dovresti fare:

    if (empty($autore))
    {echo "autore Vuoto";}
    else
    {echo "autore NON Vuoto:" . $autore;}
    Ciao!

  6. #6
    Il valore NULL per mysql e' un po' particolare, e non funziona come immagini. Non importa cosa contenga una variabile che inserisci nel database, se non passi a mysql esplicitamente la keyword NULL, allora il campo sara' semplicemente vuoto.

    Per spiegare meglio:
    codice:
    $var = NULL;
    mysql_query("INSERT INTO table VALUES('$var')"); // inserisce un campo vuoto
    
    mysql_query("INSERT INTO table VALUES(NULL)"); // inserisce NULL

  7. #7
    Originariamente inviato da k.b
    Il valore NULL per mysql e' un po' particolare, e non funziona come immagini. Non importa cosa contenga una variabile che inserisci nel database, se non passi a mysql esplicitamente la keyword NULL, allora il campo sara' semplicemente vuoto.

    Per spiegare meglio:
    codice:
    $var = NULL;
    mysql_query("INSERT INTO table VALUES('$var')"); // inserisce un campo vuoto
    
    mysql_query("INSERT INTO table VALUES(NULL)"); // inserisce NULL
    Beh....io farei in altra maniera....basta impostare ad un campo nel db il valore di default NULL....

    ti faccio un ex:

    hai una tabella TABELLA1 con due campi id (NOT NULL) e campo1 (DEFAULT NULL)

    se fai una insert nel database,passando al DBMS sia l'id che campo1, il DBMS fa la query e nella tabella ti trovi l'id inserito e il campo1. se però nella form il campo "campo1" è vuoto, basta non menzionarlo nella query e di default esso sarà impostato a NULL.


    Codice PHP:

    $id 
    $_POST['id'];
    $campo1 $_POST['campo1'];


    if (empty(
    $campo1)) {

         
    mysql_query("INSERT INTO tabella1 (id) VALUES ('$id')");
    }
    else {

          
    mysql_query("INSERT INTO tabella1 (id,campo1) VALUES ('$id','campo1')");

    V.I.S.T.A. --> Virus Inside, Switch To Apple

  8. #8
    Originariamente inviato da mr.click
    Beh....io farei in altra maniera....basta impostare ad un campo nel db il valore di default NULL....
    Eh grazie, ma JANUS70 voleva che un campo NOT NULL desse errore se provi ad inserire un valore vuoto, non voleva inserire dei NULL.

    La risposta e': fallo lato codice e non lato database.

  9. #9
    ah ok...allora non avevo capito la domanda
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Originariamente inviato da k.b
    Eh grazie, ma JANUS70 voleva che un campo NOT NULL desse errore se provi ad inserire un valore vuoto, non voleva inserire dei NULL.

    La risposta e': fallo lato codice e non lato database.
    mi sa che è l'unica ..

    comunque anche assegnando il valore null alla variabile ($autore = NULL .. l'insert del campo, pur in teoria non accettando valori a null, viene eseguito correttamente !
    .. e questo mi sembra un pò anomalo.
    grazie

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.