Ma se la data non c'è e la ricerca avviene solo per comune? lo script che hai scritto penso vada in errore. Ho cmq risolto in quest'altra maniera:

Codice PHP:
$query "SELECT * FROM tabella WHERE ";

$condizioni = array();

if(!empty(
$_POST['campo1'])) 
   
$condizioni[] = "campo1 = '" $_POST['campo1'] . "'";

if(!empty(
$_POST['campo2'])) 
   
$condizioni[] = "campo2 = '" $_POST['campo2'] . "'";

if(!empty(
$_POST['campo3'])) 
   
$condizioni[] = "campo3 = '" $_POST['campo3'] . "'";

$query $query implode(" AND "$condizioni);

$result mysql_query($query); 
funziona ma l'unico problema è che se aggiungo questo pezzo:
Codice PHP:
if(!empty($_REQUEST['data_ingresso_dal']))
$data_dal english_date($_REQUEST['data_ingresso_dal']);
$condizioni[] = "data_ingresso >= '" $data_dal "'";

if(!empty(
$_REQUEST['data_ingresso_al']))
$data_al english_date($_REQUEST['data_ingresso_al']);
$condizioni[] = "data_ingresso <= '" $data_al "'"
non solo non mi trova nulla, ma mi restituisce il seguente errore:

Notice: Undefined variable: data_dal in c:\www\viavas\ricerca_decreti.php on line 11
Notice: Undefined variable: data_al in c:\www\viavas\ricerca_decreti.php on line 15