Hola,
Mira tu consulta, estas dejando todos los parametros del WHERE con AND, es decir que si (por ejemplo), yo no lleno el campo de fecha va a poner AND fecha = '', y así con los demás campos porque no son excluyentes uno del otro.
Lo que debes hacer es primero evaluar qué variables de las que recibes(en este caso vía $_POST) tienen alguna información y completar la consulta, algo como esto:
Código PHP:
if(!empty( $_POST['marca'] )) //Si no esta vacía
{
$complemento .= " AND coche.marca = '{$_POST[',marca']}'";
}
if( !empty($_POST['modelo']))
{
$complemento .= " AND coche.modelo = '{$_POST['modelo']}'";
}
.....
Y así vas a concatenar la sentencia final que luego agregaras a la query simplemente con:
Código PHP:
$query = "SELECT ...... FROM ..... WHERE coche.ciudad ... $complemento";
Con esto logras que sólo a la consulta agregues la información que efectivamente el usuario completo en el formulario anterior.
Espero te sirva.