Si può ricomporre la string di una query in base a delle variabili:
$piece="SHOW";
$query=mysql_query("" . $piece . " TABLES");
ti dovrebbe funzionare quanto la:
$query=mysql_query("SHOW TABLES");
(magari fai un test analogo sulla query del tuo esempio che hai già il file bell'e pronto, non si sa mai qualche versione differente di PHP ma sul mio Server non ho incontrato problemi in tal senso).
Assunto questo, possiamo introdurre un if-statement che fa esistere la clausola WHERE solo se il valore ritornato da $_POST['Tipologia']; non è vuoto:
if($_POST['Tipologia'] == ""){
$tipologia = "";
} else {
$tipo = $_POST['Tipologia'];
$tipologia = " WHERE tipologia='" . $tipo . "'";
};
$strsql = mysql_query("
SELECT rif, descrizione FROM dbimmobili" . $tipologia . "
");
mi limito ad un solo campo, se lasci l' option "-- Qualsiasi --" ti dovrebbe restituire tutte le righe; devo scappare; dopo ricontrollo, potrei aver lasciato qualche minimo errore ma sullo schema non ci sono dubbi.
Non si può fare invece, restituisce ERROR una query lasciando in bianco la clausola:
$strsql = mysql_query("SELECT rif, descrizione FROM dbimmobili WHERE");
per questo ho portato tutto il WHERE a far parte dell' if.

Rispondi quotando