• User Attivo

    Costruzione di una query dinamica

    Ciao a tutti, mi son un po' incasinato nella costruzione di una query dinamica.
    Ho un piccolo form per la ricerca:
    <form name="info" id="info" action="?azione=lista" method="post">
    <select name="tipo">
    <option value="tutti">Tutti</option>
    <option value="a">A</option>
    <option value="b">B</option>
    <option value="c">C</option>
    </select>
    <select name="regione" id="regione" onchange="loading()">
    <option value="sel" selected="selected">Tutte le regioni</option>
    for($x=0;$x<count($l1);$x++){
    <option value="'.$l1[$x]['idregione'].'">'.$l1[$x]['nomeregione'].'</option>
    }
    </select>
    <input type="submit">
    </form>

    Poi nella funzione a cui mando i valori li recupero in questo modo:

    $tipo='tutti'; if (isset($_POST['tipo'])){$tipo=trim($_POST['tipo']);}
    $regione='tutti'; if (isset($_POST['regione'])){$regione=trim($_POST['regione']);}
    $where=' 1=0 ';
    if($tipo!='tutti'){$where.=' OR tipo="'.$tipo.'"';}
    if($regione!='tutti'){$where.=' OR nomeregione="'.$regione.'"';}

    $sql='SELECT *,nomeregione FROM prova INNER JOIN regioni ON PROVA.prova_idregione=REGIONI.idregione WHERE '.$where.' ORDER BY prova_id desc ';

    La query non mi da errore ma non fa quello che vorrei ovvero, vorrei che se non seleziono niente dalla prima select del form e dalla seconda mi mostra tutti i record, oppure se la prima o la seconda select hanno valore mi mostra i record con quel valore e infine se tutte due le select del form han valore mi mostra i record corrispondenti a quei valori. Cosa sto sbagliando? perchè con OR non funziona? Grazie.