Osea vos queres que, por ejemplo, si ponen un campo en blanco (en tu ejemplo el campo "Lugar") te devuelvan los resultados de la consulta ignorando el valor de "Lugar" ??
Vos queres q te devuelva valores identicos o no? Porque en el ejemplo que pones
Nombre: Pepito
Lugar: (en blanco)
Fecha: 10 - 2015
Te devolveria el campo pepito de esa fecha, pero si tenes en la BD un "Pepito1" con esa fecha misma tambien deberia devolvertelo? Para que sepamos si tenes q usar Like o =.
Yo hice un buscador de ese tipo para una empresa de inmobiliarias, y lo que hacia era armar la consulta dinamicamente, algo asi:
Código PHP:
$query = "SELECT id, nombre, dia, mes, anno, lugar FROM conciertos ";
$nombre = $_POST["nombre"]
if($nombre != ""){
if(!strstr($query,"WHERE")){
$query .= "WHERE nombre='$nombre' ";
}
else{
$query .= "AND nombre='$nombre' ";
}
}
$lugar= $_POST["lugar"]
if($lugar!= ""){
if(!strstr($query,"WHERE")){
$query .= "WHERE lugar='$lugar' ";
}
else{
$query .= "AND lugar='$lugar' ";
}
}
$fecha= $_POST["fecha"]
if($fecha!= ""){
if(!strstr($query,"WHERE")){
$query .= "WHERE fecha='$fecha' ";
}
else{
$query .= "AND fecha='$fecha' ";
}
}
Hace eso y luego dale un echo a $query, y fijate si la consulta se te arma bien, luego le haces el mysql_query y listo!
Lo que yo hice es para campos identicos, pq en mi caso fue para una inmobiliaria que buscaba pisos de X tamaño y en X lugar (entre otras cosas), por lo que debia usar = en vez de LIKE
Saludos.