Ese error es porque no se pudo ejecutar la consulta y mysql_query() devuelve falso en lugar de un recurso de acceso a base de datos y, para saber de que se trata, basta con agregar al final:
Seria interesante ver lo que estas obteniendo en $_POST, pero, creo que lo mas sencillo seria:
Código PHP:
Ver original$consulta = 'SELECT * FROM tabla';
// Vas agregando solo los campos que se seleccionaron
if(isset($_POST['dato']) && $_POST['dato'] != '') { $filtros = "dato = {$_POST['dato']}";
}
// Al final verificas si hay algun filtro y lo aplicas:
if(count($filtros) > 0) { $consulta .= ' WHERE ' . implode(' AND ', $filtros); }
Eso deberia funcionar.