• User

    Query ricerca e campi vuoti

    Salve a tutti,
    mi sono appena iscritto dopo settimane passate a leggere e consultare 🙂
    Ho un problemino che per me newbie è un casotto 😞
    Ho una tabella con dentro vari campi, ho creato un form con una query che tramite Select che interroga il DB e rimanda i risultati ad una pagina php.
    Dov'è il problema?
    Il problema è che è una ricerca multipla... e mi funziona solo ed esclusivamente se seleziono tutti i campi, se solo uno rimane non selezionato, la ricerca non dà risultati...anche se presenti.
    Un sistema che funziona è un "option value" multiple, in questo modo, non "toccando" nulla in quel campo è come se fosse stata selezionata un'ipotetica voce "Tutti".
    Io invece vorrei usare un "option value" a tendina con tutti i vari campi più una voce "Seleziona tutti" oppure "indifferente" in modo tale che , se selezionata, mi tralascio quel campo nella composizione della query.
    Come posso fare? Tutti i miei tentativi sono falliti.
    Ero partito pensando a una IF, cioè se il campo1 è vuoto escludilo dalla ricerca..ma non va.....perchè considera il campo1 vuoto nel senso che non abbia dati all'interno....e non come non selezionato.
    Lo so..non sono stato molto chiaro :mmm: 😞
    Un aiutino?
    Grazie! 🙂
    Andrea


  • Moderatore

    Puoi postare del codice esemplificativo che mi son perso?

    Che query devi ottenere, ad esempio? 🙂


  • User

    @massy said:

    Puoi postare del codice esemplificativo che mi son perso?

    Che query devi ottenere, ad esempio? 🙂

    Ciao,
    adesso non ho qui il codice...appena lo recuper sull'altro pc ne posto un pezzo....
    Cmq.. per esempio...
    Prendiamo una tabella che contiene vari campi riferiti a delle automobili: marca, modello, alimentazione, prezzo ecc ecc....
    Nel form di ricerca (fatto di menù a tendina) vorrei per esempio poter scegliere nel campo "alimentazione" la voce "Tutte" di modo che la query mi consideri tutte le alimentazioni nella sua ricerca.
    Come fare?
    Grazie
    Andrea


  • Moderatore

    Non so se ho ben compreso.. ci provo cmq.

    metti nella select un'option del tipo: <select name="auto"><option value="opzione1">opzione1</option><option value="all">Tutte le categorie</option></select>

    e nel php potresti fare una cosa del genere:

    $opt=(!isset($_POST['auto']) || $_POST['auto']=="all")?"1":"automobili=".$_POST['auto'];
    $query="select [quello che ti pare] from [tabella] WHERE '".$opt."';";

    In pratica, compili la query in base al valore di auto, se tale valore che gli passi non esiste gli passi 1, quindi le becchi tutte, altrimenti selezioni quello che ti serve.

    Ps codice scritto al volo e senza controlli sui campi. 🙂


  • User

    Grazie!
    Adesso devo uscire ma oggi pomeriggio provo e ti so dire 🙂