Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Ricerca per filtri

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173

    Ricerca per filtri

    Salve a tutti,
    vorrei effettuare una ricerca ben precisa tramite un form di ricerca di questo tipo:

    Cattura.PNG

    Il problema è che se ricerco un solo campo, cioè se voglio tutta la lista del db per un determinato paese, lui non me lo tira fuori, ma mi tira fuori tutti i risultati del db.
    Vorrei che fosse una ricerca specifica dove però non tutti i campi saranno compilati all'interno del form.
    Posto la query che sto utilizzando:
    codice:
    $query_cerca = mysql_query("SELECT * FROM clienti WHERE come = '$come' OR (come = '$come') AND nominativo = '$nominativo' OR (nominativo = '$nominativo') AND tipologia = '$tipologia' OR (tipologia = '$tipologia') AND settori = '$settori' OR (settori = '$settori')
                                        AND indirizzo = '$indirizzo' OR (indirizzo = '$indirizzo') AND paese = '$paese' OR (paese = '$paese') AND nome = '$nome' OR (nome = '$nome') AND cognome = '$cognome' OR (cognome = '$cognome') AND telefono = '$telefono' OR (telefono = '$telefono') AND cellulare = '$cellulare' OR (cellulare = '$cellulare') AND mail = '$mail' OR (mail = '$mail')
                                        AND fonte = '$fonte' OR (fonte = '$fonte') AND note = '$note' OR (note = '$note') AND appuntamento = '$appuntamento' OR (appuntamento = '$appuntamento') AND esito = '$esito' OR (esito = '$esito') AND newsletter = '$newsletter' OR (newsletter = '$newsletter')");
    Cercando in rete, ho provato a mettere una doppia "condizione" nella query, ma a quanto pare non funziona! Help Me!

  2. #2
    Ciao, non capisco bene cosa vorresti fare. Vorresti estrarre, tramite dei filtri precisi, dei valori dal Database? Vuoi una ricerca specifica o tutti i valori che corrispondono a quei filtri?

    Spiegati meglio e vediamo se riesco ad aiutarti.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Ti spiego meglio...
    Supponiamo di avere di fronte il form di ricerca di ebay, dove puoi ricercare per Oggetto usato o nuovo, per una fascia di prezzo, per provincia, paese e tanto altro. Io vorrei fare la stessa cosa.
    Supponiamo che vado a cercare solo per paese, mi dovrebbe tirare fuori tutti i clienti per quel paese, ma dato che gli altri campi sono vuoti (perchè non ho bisogno degl'altri campi) non riesco ad effettuare una ricerca precisa.
    Però tutti i campi possono essere ricercati.

    Se non mi sono spiegato, dimmelo che rispiego nuovamente

  4. #4
    Prova così, senza specificare AND:

    "SELECT * FROM clienti WHERE come = '$come' OR nominativo = '$nominativo' OR tipologia = '$tipologia' OR settori = '$settori' OR indirizzo = '$indirizzo' OR paese = '$paese' OR nome = '$nome' OR cognome = '$cognome'";

    PS: Non è la sezione giusta per postare questa discussione.
    Ultima modifica di hypertextPro; 23-06-2016 a 16:40

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Non funziona ugualmente...
    Ho tutti questi campi ma non è detto che questi campi vengano compilato tutti... posso fare una ricerca per paese, oppure una per categoria. Ma a quanto pare mi estrae tutto.

    Comunque in quale sezione devo postare?

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ti devi costruire la query dinamicamente, in base ai dati che ti vengono dal form.
    Ad esempio

    Codice PHP:
    $where ' 1=1 ';
    if(isset(
    $_POST['indirizzo']) && trim($_POST['indirizzo']) != ''){
       
    $where .= " AND indirizzo='".mysql_real_escape_string($_POST['indirizzo'])."'";
    }

    if(isset(
    $_POST['nome']) && trim($_POST['nome']) != ''){
       
    $where .= " AND nome ='".mysql_real_escape_string($_POST['nome'])."'";
    }

    ...

    $query mysql_query("SELECT * FROM clienti WHERE $where"); 
    PS: ma come = '$come' OR (come = '$come'), che senso ha?
    Ultima modifica di boots; 24-06-2016 a 09:59

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Non ha senso infatti il '$come' OR (come = '$come')'.
    Ora provo.
    Ultima modifica di Joisberg; 24-06-2016 a 10:12

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Perchè vuoi fare tutte le combinazioni ? non ti basta mettere in AND solo i campi che ricevi?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Si giusto!
    Ho risolto come mi hai detto tu! Grazie infinitamente.

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.