Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Ricerca multipla su più campi

    Salve ragazzi,
    come qualcuno avrà letto dal mio precedente post sto creando una sorta di rubrica in php e mysql.
    Scelgo un campo sul quale effettuare la ricerca e stampo i risultati a video.
    Supponete ora che abbia 2 campi, per esempio Cognome (da inserire tramite text box) e un campo funzione (menù a tendina con determinati valori).
    Voglio poter effettuare 3 tipi di ricerca:
    - solo per cognome
    - Solo per funzione
    - Per cognome e funzione
    In questo caso dovrei scrivere degli if per ogni cosa? del tipo:

    if (cognome="" and funzione="") {
    errore
    } else if (cognome=$POST and funzione="") {
    query solo per cognome}
    else if (cognome="" and funzione=$POST) {
    query solo per funzione}
    else if (cognome=$POST nd funzione=$POST) {
    query per entrambe le voci }
    while (condizione) {
    stampa risultati
    }

    Ovviamente il codice l'ho scritto alla buona per capirci...

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    credo sia una soluzione buona..
    purtroppo non potrò vedere eventuali risposte perchè vado via dal lavoro e riapro tutto lunedì..
    spero qualcun altro possa darti una mano, ma credo tu sia sulla strada giusta..

  3. #3
    Originariamente inviato da telegio
    credo sia una soluzione buona..
    purtroppo non potrò vedere eventuali risposte perchè vado via dal lavoro e riapro tutto lunedì..
    spero qualcun altro possa darti una mano, ma credo tu sia sulla strada giusta..

    grazie telegio per aver appoggiato la mia idea
    qualcun altro ha qualche altra soluzione?

  4. #4
    Io di solito creo la query al db in base ai valori della ricerca che ho, ad esempio:

    Codice PHP:
    $query="SELECT * FROM rubrica WHERE 1 ";
    if(isset(
    $_POST[cognome] and $_POST[cognome]!=''){
      
    $query.="AND COGNOME LIKE '%$_POST[cognome]%'";
    }
    if(isset(
    $_POST[funzione] and $_POST[funzione]!=''){
      
    $query.="AND FUNZIONE = '$_POST[funzione]'";
    }
    $query.="ORDER BY COGNOME"

  5. #5
    Originariamente inviato da Havatar360
    Io di solito creo la query al db in base ai valori della ricerca che ho, ad esempio:

    Codice PHP:
    $query="SELECT * FROM rubrica WHERE 1 ";
    if(isset(
    $_POST[cognome] and $_POST[cognome]!=''){
      
    $query.="AND COGNOME LIKE '%$_POST[cognome]%'";
    }
    if(isset(
    $_POST[funzione] and $_POST[funzione]!=''){
      
    $query.="AND FUNZIONE = '$_POST[funzione]'";
    }
    $query.="ORDER BY COGNOME"
    ciao Havatar360,
    questo WHERE 1 che vuol dire?
    e poi se ho più campi mi basta replicare gli if in questo modo??
    all'ultimo andrebbe un else con l'errore no?
    grazie

  6. #6
    questo WHERE 1 che vuol dire?
    Significa tutti i record
    e poi se ho più campi mi basta replicare gli if in questo modo??
    Si, quanti ne vuoi e così facendo anche con tanti campi puoi incrociare le ricerche senza dover prevedere tutti i casi
    all'ultimo andrebbe un else con l'errore no?
    no, infatti se non metti nessun campo di ricerca la query restituisce tutti i record del db...

  7. #7
    Originariamente inviato da Havatar360
    Significa tutti i record

    Si, quanti ne vuoi e così facendo anche con tanti campi puoi incrociare le ricerche senza dover prevedere tutti i casi

    no, infatti se non metti nessun campo di ricerca la query restituisce tutti i record del db...
    perfetto funziona tutto
    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.