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

Pequeño problema con consulta a la BD

Estas en el tema de Pequeño problema con consulta a la BD en el foro de Mysql en Foros del Web. Hola de nuevo a todos. Tengo una aplicacion PHP+MySQL, la duda que tengo es la sgte: En un form necesito consultar los datos de un ...
  #1 (permalink)  
Antiguo 25/06/2009, 07:35
 
Fecha de Ingreso: abril-2008
Ubicación: Rancagua, Chile
Mensajes: 41
Antigüedad: 16 años
Puntos: 0
Pequeño problema con consulta a la BD

Hola de nuevo a todos.
Tengo una aplicacion PHP+MySQL, la duda que tengo es la sgte:

En un form necesito consultar los datos de un determinado paciente el problema es que el nombre del paciente está dividido en 3 campos (Nombre, Apellido Paterno y Apellido Materno).

Cuando genero una consulta solo debo ingresar un criterio de busqueda es decir algo parecido a esto:

$sql="SELECT * FROM PACIENTE WHERE nom_pac LIKE '%$q%'"; ó
$sql="SELECT * FROM PACIENTE WHERE apep_pac LIKE '%$q%'";

tambien he probado con esta sentencia pero nada

$sql="SELECT * FROM PACIENTE WHERE (nom_pac LIKE '%$q%' OR apep_pac LIKE '%$q%' OR apem_pac LIKE '%$q%')";

Como hago para hacer una consulta de manera tal que me busque por ambos atributos?

Observacion: El ingreso del argumento es a traves de un sólo textbox

Cordiales saludos...
  #2 (permalink)  
Antiguo 25/06/2009, 07:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Pequeño problema con consulta a la BD

Yo probaría algo así:
Código sql:
Ver original
  1. SELECT *
  2. FROM PACIENTE
  3. WHERE CONCAT(nom_pac, ' ', apep_pac, ' ', apem_pac) LIKE '%valorTextBox%';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/06/2009, 07:46
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Pequeño problema con consulta a la BD

La sentencia sql parece estar bien.
Prueba esto
SELECT * FROM PACIENTE WHERE (nom_pac LIKE '%carlos%' OR apep_pac LIKE '%sanchez%' OR apem_pac LIKE '%gomez%')
(Con datos reales) directamente desde mysql. No la he probado pero veo que está bien.

Tu problema creo que está mas por el lado de php. prueba haciendo una impresión de la variable justo antes de pasarla a la consulta y asegurate que lleve el valor correcto.

EDITO: Queda mejor con la consulta que te ofrece gnzsoloyo-


Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 25/06/2009 a las 07:51
  #4 (permalink)  
Antiguo 25/06/2009, 07:58
Avatar de amanbur  
Fecha de Ingreso: noviembre-2006
Ubicación: Valencia
Mensajes: 129
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Pequeño problema con consulta a la BD

si el valor puede estar en cualquiera de los 3 campos y no se dice en cual, lo que te dicen en las anteriores respuestas es correcto.
  #5 (permalink)  
Antiguo 25/06/2009, 08:48
 
Fecha de Ingreso: abril-2008
Ubicación: Rancagua, Chile
Mensajes: 41
Antigüedad: 16 años
Puntos: 0
Respuesta: Pequeño problema con consulta a la BD

Funcionó excelente, muchas gracias por sus aportes.
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 05:00.