Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/07/2003, 12:52
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
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.
__________________
Josemi

Aprendiz de mucho, maestro de poco.