Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    417

    [MySQL] query con campi non sempre pieni

    Ciao a tutti è da giorni che sto cercando ci capire come fare una query con campi che possono anche essere vuoti ho un form con dei campi di testo e passo tramite GET i vari ad una pagina con questa query:

    Codice PHP:
    $result mysql_query($conn,"SELECT * FROM anagrafica WHERE (id_cli LIKE '%$id_cli%' OR id_cli IS NULL) AND (tipo LIKE '%$tipo%' OR tipo IS NULL) AND (ragionesoc LIKE '%$ragionesoc%' OR ragionesoc IS NULL) AND (nomeconta LIKE '%$nomeconta%' OR nomeconta IS NULL) AND (tipoconta LIKE '%$tipoconta%' OR tipoconta IS NULL) AND (telconta LIKE '%$telconta%' OR telconta IS NULL) AND (compleconta LIKE '%$compleconta%' OR compleconta IS NULL) AND (tel1 LIKE '%$tel1%' OR tel1 IS NULL) AND (tel2 LIKE '%$tel2%' OR tel2 IS NULL) AND (cellulare LIKE '%$cellulare%' OR cellulare IS NULL) AND (fax LIKE '%$fax%' OR fax IS NULL) AND (piva LIKE '%$piva%' OR piva IS NULL) AND (indirizzo LIKE '%$indirizzo%' OR indirizzo IS NULL) AND (localita LIKE '%$localita%' OR localita IS NULL) AND (provincia LIKE '%$provincia%' OR provincia IS NULL) AND (cap LIKE '%$cap%' OR cap IS NULL) AND (mail LIKE '%$mail%' OR mail IS NULL) AND (foto LIKE '%$foto%' OR foto IS NULL) AND (dotazione LIKE '%$dotazione%' OR dotazione IS NULL) AND (dotazioned LIKE '%$dotazioned%' OR dotazioned IS NULL) AND (statocli LIKE '%$statocli%' OR statocli IS NULL) AND (notecli LIKE '%$notecli%' OR notecli IS NULL) AND (appartiene LIKE '%$appartiene%' OR appartiene IS NULL) AND (agente LIKE '%$agente%' OR agente IS NULL) AND (contattatoil LIKE '%$contattatoil%' OR contattatoil IS NULL) AND (concbac LIKE '%$concbac%' OR concbac IS NULL) AND (conccroc LIKE '%$conccroc%' OR conccroc IS NULL) AND (fotomaps LIKE '%$fotomaps%' OR fotomaps IS NULL) AND (cabinaest LIKE '%$cabinaest%' OR cabinaest IS NULL)"); 
    la query mi restituisce sempre il risutlato 0 anche se metto dei valori che esistono nel mio DB , provando la query in phpmyadmin non mi da errore

    MySQL ha restituito un insieme vuoto (i.e. zero righe). ( La query ha impiegato 0.0479 sec )

    ma nennemo dei risultati che io ho forzato.

    grazie

  2. #2
    A parte la tua query chilometrica con un mare di AND nel where. Questo significa che basta un FALSE da qualunque parte per avere risultati zero.

    Mi viene da pensare che il tuo problema sia legato al valore NULL. saprai sicuramente che gli stati del campo possono essere tre:

    1 = NULL (defiito NULL e mai valorizzato)
    2 = empty (vuoto - definito come NOT NULL ma vuoto)
    3 = valorizzato (campo NULL o NOT NULL ma con del contenuto e perde la caratteristica NULL)

    Ora NULL e' diverso da empty. infatti nella query ci sara':

    where campo IS NULL oppure where campo = ''

    Quindi un campo settato NULL che viene valorizzato e poi cancellato non avra' piu' la caratteristica di NULL ma di empty.
    Un campo NOT NULL anche se vuoto non avra' mai la possibilita' di essere NULL.

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    417
    anche io ho pensato questo e pesnavo che con il %% avrei risolto qualcosa.... ma a quanto pare no
    hia idee su come posso risolvere a questo problema la mia query deve essere perforza con queste incognite che ci posso essere ma anche no...

  4. #4
    Quote Originariamente inviata da ubi1 Visualizza il messaggio
    anche io ho pensato questo e pesnavo che con il %% avrei risolto qualcosa.... ma a quanto pare no
    hia idee su come posso risolvere a questo problema la mia query deve essere perforza con queste incognite che ci posso essere ma anche no...
    ti ha gia risposto Piero...

    che ha scritto :
    A parte la tua query chilometrica con un mare di AND nel where. Questo significa che basta un FALSE da qualunque parte per avere risultati zero.

    Evidentemente nella tua query ottieni un FALSE e giustamente non vedi niente.

    Il consiglio che posso darti e' di verificare singolarmente ogni condizione , in modo tale da trovare quella che "fallisce".
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    Quote Originariamente inviata da ubi1 Visualizza il messaggio
    anche io ho pensato questo e pesnavo che con il %% avrei risolto qualcosa.... ma a quanto pare no
    hia idee su come posso risolvere a questo problema la mia query deve essere perforza con queste incognite che ci posso essere ma anche no...
    verifica come sono impostati i campi (se NULL o NOT NULL) fai una query senza condizioni nel where e vedi se risponde NULL oppure empty nei vari campi e spulcia campo per campo come ti e' stato suggerito.

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

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    417
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    verifica come sono impostati i campi (se NULL o NOT NULL) fai una query senza condizioni nel where e vedi se risponde NULL oppure empty nei vari campi e spulcia campo per campo come ti e' stato suggerito.
    ragazzi scusatemi la mia query era funzionante avevo sbagliato il while per la scrittuta dei risultati

  7. #7
    Quote Originariamente inviata da ubi1 Visualizza il messaggio
    ragazzi scusatemi la mia query era funzionante avevo sbagliato il while per la scrittuta dei risultati
    meglio cosi
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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 © 2026 vBulletin Solutions, Inc. All rights reserved.