Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Una query para reunirlas a todas

Estas en el tema de Una query para reunirlas a todas en el foro de Mysql en Foros del Web. Hola, estoy programando un buscador que tienes varios campos que se pueden rellenar o no. ¿Se puede realizar una única consulta que contemple todos los ...
  #1 (permalink)  
Antiguo 13/01/2006, 06:48
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Una query para reunirlas a todas

Hola, estoy programando un buscador que tienes varios campos que se pueden rellenar o no. ¿Se puede realizar una única consulta que contemple todos los casos (campos rellenados o no)?
Más concretamente si el buscador tiene los campos: nombre, codigo y familia; ¿se puede hacer una consulta sin tener que comprobar si se han rellenado los campos?. Ej:

Código PHP:
if( !empty($nombre) && empty($codigo) && empty(familia) )
{
      
$query "SELECT * FROM Tabla WHERE Nombre = $nombre";
}

if( !empty(
$nombre) && !empty($codigo) && empty(familia) )
{
      
$query "SELECT * FROM Tabla WHERE Nombre = $nombre AND Codigo = $codigo";
}

... 
  #2 (permalink)  
Antiguo 16/01/2006, 03:24
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Al final he optado por crear la clausula WHERE paso a paso comprobando si se habían rellenado las variables o no. Es un poco laborioso porque segun el contenido de la variable habrá que añadir un AND o no.
  #3 (permalink)  
Antiguo 16/01/2006, 09:25
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 4 meses
Puntos: 2
Para no tener que hacer demasiado lio con los AND podes hacer esto:

Código PHP:
if ($_GET["AtendidoPor"]) {
        
$Filtro_AtendidoPor "AND bla = '".$_GET["AtendidoPor"]."'";        
}

$Query "
    SELECT
        ID_llamado,        
        bla
    FROM
        tabla
    WHERE
        1=1
        $Filtro_AtendidoPor
        $otro_mas
    ORDER BY
        FechaHora DESC
"

Saludos!
__________________
JmN
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:37.