Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149

    Variabile "dinamica" (select...from...)

    Buongiorno a tutti,
    chiedo cortesemente il vostro aiuto.
    Ho una tabella GENERALE che tra i vari campi ha anche i campi REGIONI, PROVINCE, COMUNI.
    Ho poi tre tabelle con i seguenti campi:

    REGIONI (id, nome)
    PROVINCE (id, id_regione, nome)
    COMUNI (id, id_provincia, nome)

    Ho una form dove tra i vari dati inserisco quindi anche i dati della regione provincia e comune.

    Nella mia form di ricerca, ho una sorta di ricerca "avanzata", ovvero 3 campi con 3 oggetti di ricerca differenti che possono essere completati tutti o parzialmente per rendere piu precisa la ricerca, per esempio, nella form di ricerca ho:

    1) il campo nome struttura
    2) il campo regione struttura
    3) il campo provincia struttura

    l'utente può ricercare:
    1) per nome struttura e basta
    2) oppure per nome struttura e regione struttura (e non anche per città struttura)
    3) oppure per regione e città (senza scrivere nulla su nome struttura per vedere l'elenco di tutte le strutture all'interno di quella regione/città), etc etc..
    Per far questo ho definito uan variabile "dinamica":

    Codice PHP:
    $q " select ....";
    $q .= " from ...."
    E poi ho definito questa condizione:

    Codice PHP:
    if ( isset ( $_POST['regioni'] ) && trim $_POST['regioni'] ) != '' ) {
    $q .= " and recensioni.regioni like '" $_POST['regioni'] . "%'";

    Funziona tutto, ma ho altre 2 if che andrebbero aggiunte e che, se sono attive, ovvero se l'utente seleziona anche quel campo in ricerca, dovrebbero modificare ulteriormente la variabile $q . AGGIUNGENDO la seconda istruzione alla prima già aggiunta precedentemente, ma attualmente facendo queste 3 if di file ognuna va in sostituzione dell'altra:

    Codice PHP:
    if ( isset ( $_POST['regioni'] ) && trim $_POST['regioni'] ) != '' ) {
    $q .= " and recensioni.regioni like '" $_POST['regioni'] . "%'";
    }

    if ( isset ( 
    $_POST['province'] ) && trim $_POST['province'] ) != '' ) {
    $q .= " and recensioni.province like '" $_POST['province'] . "%'";
    }

    if ( isset ( 
    $_POST['comuni'] ) && trim $_POST['comuni'] ) != '' ) {
    $q .= " and recensioni.comuni like '" $_POST['comuni'] . "%'";

    Mi potete aiutare?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova a guardare questo vecchio thread

    http://forum.html.it/forum/showthrea...readid=1276934

    in particolare questo post

    http://forum.html.it/forum/showthrea...2#post11982062

    così ti eviti tutti quegli if.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    magnifico, funziona...

    Grazie mille veramente

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.