- Home
- Categorie
- Coding e Sistemistica
- PHP
- Costruzione di una query dinamica
-
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.