Originariamente inviato da Sebastian84 Adesso però se metto, ad esempio, tipologia = appartamento e zona = cinquale, quindi una ricerca con tutti i campi selezionati, mi restituisce questo errore:
../..
... non penso sia un errore irreparabile:
No, tranquillo era previsto; stamane avevo davvero poco tempo e poi è meglio che tu ora abbia verificato che fin qui ci siamo.
È perché così il risultato della ricomposizione è una query con due WHERE:
$strsql = mysql_query("SELECT rif, descrizione FROM dbimmobili WHERE tipologia='appartamento' WHERE zona='cinquale'");
mentre dobbiamo averlo solo per il primo, e poi AND per i successivi.
Eh già, ma come facciamo a sapere quale sarà il primo select non-generico, e se poi l' utente uno ne salta e uno ne sceglie ... non so mica se si potrà fare.
Vabbé via, voglio essere magnanimo, fammi sapere se funziona; ho portato in alto le variabili che raccolgono i Valori dal POST:
Codice PHP:
$tipologia1 = $_POST['Tipologia'];
$zona1 = $_POST['Zona'];
if($tipologia1 == '') {
$tipologia = '';
} else {
$tipologia = " WHERE tipologia = '" . $tipologia1 . "'";
};
if($zona1 == '') {
$zona = '';
} else {
if($tipologia == '') {$clausola="WHERE";} else {$clausola="AND";};
$zona = " " . $clausola . " zona = '" . $zona1 . "'";
};
$strsql = mysql_query("
SELECT rif, descrizione FROM dbimmobili" . $tipologia . "" . $zona . "
");
Negli if-step dopo il primo, inserirai un ulteriore if-statement che verifica se i precedenti hanno lasciato qualcosa ...
Per il terzo sarà:
if($tipologia == '' && $zona == '') {$clausola="WHERE";} else {$clausola="AND";};