Fa in modo che se uno non scrive/sceglie niente in un campo del form, questo invierà una stringa vuota.
Ti crei tante variabili quante sono i campi del form, esempio:
codice:
$prezzo_min = "*";
$prezzo_max = "*";
$regione ="*";
$tipo = "*";
...
poi tanti if quante sono le variabili:
codice:
if($_POST['prezzo_min'] != "")
$prezzo_min = $_POST['prezzo_min'];
if($_POST['prezzo_max != "")
$prezzo_max = $_POST['prezzo_max'];
...
A questo punto costruisci la query
codice:
SELECT * FROM tabella WHERE prezzo_min=$prezzo_min AND prezzo_max=$prezzo_max AND ...;
In questo modo, se l'utente ha scritto/selezionato qualcosa, questo viene riportato nella query, altrimenti nella query ci sarà un * che ti permetterà di prendere qualsiasi cosa per il campo non riempito.