Hola,
Hombre, puedes hacer un echo $busqueda para ver exactamente que condicion estas ejecutando.
Pero sinceramente, yo te diria que reprogramases (refactorices) el codigo.
Yo en estos casos lo que hago es crear incrementalmente la condicion. Sobre todo cuando quiero una combinacion de todos los campos y las condiciones siempre se unen con el mismo operador (AND o OR). Seria algo asi:
Código PHP:
$busqueda=''; //inicializamos la condicion
if (isset($provincia)) {
$busqueda.=" AND provincia='$provincia"; // añadimos a la condicion el campo provincia
}
if (isset($localidad)) {
$busqueda.=" AND localidad='$localidad"; // añadimos a la condicion el campo localidad
}
if (isset($dia)) {
$busqueda.=" AND dia='$dia"; // añadimos a la condicion el campo dia
}
if (isset($mes)) {
$busqueda.=" AND mes='$mes"; // añadimos a la condicion el campo mes
}
if (isset($grupo)) {
$busqueda.=" AND grupo='$grupo"; // añadimos a la condicion el campo grupo
}
if (''!=$busqueda) { // si se ha añadido alguna condicion
$busqueda=substr($busqueda,4); // quitamos los 4 primeros caracteres " AND"
// realizamos la consulta
$consulta=mysql_db_query(...);
} else {
// si no se ha pasado ningun valor
}
Por supuesto, tambien usaria mysql_select_db() (
www.php.net/mysql_select_db) y mysql_query() (
www.php.net/mysql_query) en lugar de mysql_db_query() (esta deprecated, y pueden eliminarla en cualquier momento sin avisar). Tambien usaria mysql_error() (
www.php.net/mysql_error) para que muestre el mensaje de error de MySQL en caso de producirse. Y tambien recordar que si haces la comparacion con = el texto del formulario y el texto en la base de datos debe ser identico. Quizas haciendo el echo de $busqueda y probandola directamente en MySQL (con phpMyAdmin, por ejemplo) veas que los valores no coinciden. Busca en el manual de
www.mysql.com el operador de comparacion LIKE.
Suerte.