Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/02/2010, 06:33
Avatar de MarioAraque
MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 6 meses
Puntos: 265
Respuesta: Consulta SQL (Multiples variables en WHERE)

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.

Última edición por MarioAraque; 04/02/2010 a las 06:56