Foros del Web » Programando para Internet » PHP »

Como hacer esta consulta

Estas en el tema de Como hacer esta consulta en el foro de PHP en Foros del Web. Resulta que tengo 4 campos de busqueda Nombre apellidos sexo (Hombre , Mujer, Ambos) edad (con un intervalo) max y min Todos estos campos los ...
  #1 (permalink)  
Antiguo 04/11/2008, 13:33
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Como hacer esta consulta

Resulta que tengo 4 campos de busqueda

Nombre
apellidos
sexo (Hombre , Mujer, Ambos)
edad (con un intervalo) max y min

Todos estos campos los recojo con un input todo bien hasta que tengo que realizar la consulta.

el campo edad son fijos por lo que siemrpe va a tener un contenido ya sea el min que es 18 y el max que sera 50

el problema llega cuando no inserto el nombre, apellido o el sexo es ambos

la consulta que me genera es vacia porque el campo nombre lo detecta como vacio.
Esta es la consulta pero ya digo si no quiero insertar el nombre me da vacio cuando en teoria me deberia devolver los valores por edad o por apellido si lo pongo.

Código:
$consulta = "select * from mitabla where nombre='$nombre' AND apellidos='$apellidos' AND sexo='$sexo' AND fechanacimiento Between '$max' And '$min' ";
Que idea me dais para poder hacer esto? he pensado he hacer un if por cada campo pero pufff seria demasiado :S
  #2 (permalink)  
Antiguo 04/11/2008, 15:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como hacer esta consulta

pide ayuda en el foro PHP sobre cortar y ampliar la cadena de consulta según se pasen uno o más datos por Post o Get. Allí te dirán cómo hacerlo. Esta pregunta es muy recurrente y seguro que te lo solucionan en un pis-pas. En este foro no podemos escribir código PHP. También reporto tu post para que sea llevado al foro PHP.
  #3 (permalink)  
Antiguo 04/11/2008, 15:51
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Como hacer esta consulta

no sabia donde poner el post :(
  #4 (permalink)  
Antiguo 04/11/2008, 17:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como hacer esta consulta

Hola nfo,

Lo que tienes que hacer es condicionar tu consulta, por ejemplo:
Código php:
Ver original
  1. $condiciones = array();
  2. if(!empty($nombre)) {
  3.     $condiciones[] = "nombre='$nombre'";
  4. }
  5. if(!empty($apellido)) {
  6.     $condiciones[] = "apellido='$apellido'";
  7. }
  8. $consulta = "select * from mitabla where " . implode(' AND ', $condicionales);

Saludos.
  #5 (permalink)  
Antiguo 04/11/2008, 17:21
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Como hacer esta consulta

Hola

Y no serviria cambiando los AND de la consulta po OR??

Un saludo
  #6 (permalink)  
Antiguo 04/11/2008, 17:24
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Como hacer esta consulta

lo consegui gracias GastoV

jaronu si lo haces con OR no funciona. tiene que ser con AND
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 23:44.