Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: query con valori nulli

  1. #1

    query con valori nulli

    Ciao a tutti,
    spero di essere chiaro nel descrivere il mio problema...dunque:

    ho la necessità di interrogare un tabella con nome,località,paese,cap e provincia.
    I valori che devo andare a cercare sono inseriti dall'utente in un form e memorizzati nelle rispettive variabili $nome,$paese,$cap...

    Ora se l'utente non compila una voce del form cosa assegno alla variabile?Assegno il valore null o è una grande cavolata?

    Infine,la query mi deve dare i risultati anche escludendo una o più variabili non assegnate,posso fare la query anche con valori null?

    Spero di non aver scritto stupidate e di essere stato chiaro.

    grazie a tutti
    ciao

  2. #2
    Utente di HTML.it L'avatar di Ely88M
    Registrato dal
    Oct 2007
    Messaggi
    281
    ciao!
    io nn ho molta esperienza ma io farei:
    if $tuavar1<>'' and $tuavar2<>'' ... then
    $qyery="select........";

    spero di esserti stata utile!

  3. #3

    Re: query con valori nulli

    Originariamente inviato da dadedj
    Ora se l'utente non compila una voce del form cosa assegno alla variabile?Assegno il valore null o è una grande cavolata?

    Infine,la query mi deve dare i risultati anche escludendo una o più variabili non assegnate,posso fare la query anche con valori null?
    un valore NULL dovrebbe essere assegnato con criterio. NULL e' diverso da EMPTY. NULL semplicemente non esiste come campo. EMPTY esiste ma senza valore associato.

    Nel caso da te portato come esempio non ha senso usare NULL per una stringa, cioe' un nome mancante non dovrebbe essere NULL, ma se manca dovrebbe essere semplicemente vuoto cioe' EMPTY, NOT NULL.

    Il valore NULL si trova in modo esplicito: where campo IS NULL.

    un valore vuoto lo trovi con: where campo = ''

    un scelta del tipo: where campo != '' ti rende sia i campi valorizzati che i campi NULL. Sempre tenendo presente che se passi una stringa vuota in un campo NULL questo passera' da NULL a EMPTY. Poco pratico l'uso del NULL per campi stringa che si presume siano parte integrante del record.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    faccio un esempio vediamo se è più chiaro...

    mettiamo che ho queste variabili:
    $nome=$_POST["nome"];
    $cognome=$_POST["cognome"];
    $nazione=$_POST["nazione"];
    $lingua=$_POST["lingua"];

    ora queste variabile possono anche essere vuote,nel senso che l'utente non compila tutti i campi.

    Ora devo fare una specie di motore di ricerca,ma se faccio tipo:

    $query= mysql_query("SELECT*FROM cliente WHERE nome='$tipologia',cognome='$cognome',nazione='$naz ione',lingua='$lingua'",$db);

    logicamente non mi da nessun risultato perchè cerca nel db i campi con il valore delle variabile,che può essere anche vuota.

    Quindi io dovrei escludere dalla query le variabili vuote,giusto?
    Potete dirmi come si fa?

    Grazie mille

  5. #5
    codice:
    $nome = isset($_POST["nome"]) ? $_POST["nome"] : '%';
    questo potrebbe gia' essere un modo. Ovviamente da ripetere per ogni voce di ricerca.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Ciao grazie per avermi risosto!
    Puoi spiegarmi un po meglio cosa fa questa riga?
    Non sono molto esperto!

    Grazie

  7. #7
    Ho capito che se il campo non è vuoto allora la variabile $nome prende il nome,ma con % come posso procedere poi a fare la query?

  8. #8
    Originariamente inviato da dadedj
    Ho capito che se il campo non è vuoto allora la variabile $nome prende il nome,ma con % come posso procedere poi a fare la query?
    come prima ma usando LIKE invece di uguale ( = ) . Invece di empty troverai il carattere jolly '%'

    ovviamente per ottimizzare la query sarebbe meglio non mettere il where campo like '%' , ma saltare proprio la condizione vuota.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    quindi la query diventa:

    $query= mysql_query("SELECT*FROM cliente WHERE nome like $nome,cognome like $cognome,nazione like $nazione ,lingua like $lingua",$db);

    o come al solito non ho capito
    grazie

  10. #10
    Originariamente inviato da dadedj
    quindi la query diventa:

    $query= mysql_query("SELECT*FROM cliente WHERE nome like $nome,cognome like $cognome,nazione like $nazione ,lingua like $lingua",$db);

    o come al solito non ho capito
    grazie
    Le apici , AND e gli spazi .... please...
    codice:
    $query= mysql_query("
                               SELECT * 
                               FROM cliente 
                               WHERE nome like '$nome'
                               AND cognome like '$cognome'
                               AND nazione like '$nazione' 
                               AND lingua like '$lingua'
                               ", $db);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.