Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consultar en diferentes columnas de una tabla con php y mysql

Estas en el tema de Consultar en diferentes columnas de una tabla con php y mysql en el foro de PHP en Foros del Web. Hola amigos, tengo un problema con un buscador en php que estoy haciendo... Soy nuevo en estos temas, por eso acudo a estos foros para ...
  #1 (permalink)  
Antiguo 11/06/2014, 10:50
 
Fecha de Ingreso: mayo-2014
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 0
Busqueda Consultar en diferentes columnas de una tabla con php y mysql

Hola amigos, tengo un problema con un buscador en php que estoy haciendo...

Soy nuevo en estos temas, por eso acudo a estos foros para buscar alguna ayuda que me puedan brindar...

La estructura basica de la BD es asi:

table 'clientes'
id_cliente
nombre
apellido
documento

Lo que necesito para el buscador es que me pueda generar consultas de los tres campos (nombre, apellido, documento, etc...) al mismo tiempo dentro del mismo campo de texto.
me explico con un ejemplo..

en la BD esta asi:
id_cliente: 1
nombre: sergio
apellido: rivera
documento: 123

y la consulta que se debe generar es que si en el campo de texto se digita 'sergio rivera', en pantalla me aparezca la informacion de ese cliente... o si digito 'sergio 123' en pantalla salga mi informacion..
hasta el momento solo he podido lograr consultas en una columna a la vez... que si digito 'sergio', ó 'rivera', en pantalla me sale mi informacion.. pero al digitar 'sergio rivera', no encuentra ningun registro en la BD.

el codigo que utilizo es el siguiente:
SELECT * FROM clientes WHERE nombre LIKE '%".$campo."%' AND apellido LIKE '%".$campo."%'


Les estaré muy agradecidos si me ayudan con este problema..
Saludos..
  #2 (permalink)  
Antiguo 11/06/2014, 11:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Consultar en diferentes columnas de una tabla con php y mysql

Piensa un poco el resultado de la consulta que generas si tienes "sergio rivera" como valor de entrada:
Cita:
SELECT * FROM clientes WHERE nombre LIKE '%sergio rivera%' AND apellido LIKE '%sergio rivera%'
La consulta se generaría así, ¿eso te hace sentido?

Jamás va a encontrar un registro que tenga ese valor en ninguna columna, eso es obvio.

Lo que te sugiero es utilizar explode() para separar la cadena "sergio rivera" en dos fragmentos, a partir de ahí podrías usar cada fragmento para completar la consulta de manera adecuada.

Usa tu ingenio.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/06/2014, 11:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Consultar en diferentes columnas de una tabla con php y mysql

Concatena los campos con la función CONCAT de MySQL para que se encuentre la coincidencia cuando busques por nombre y apellido.

Código MySQL:
Ver original
  1. SELECT * FROM clientes
  2. WHERE nombre LIKE '%valor%'
  3. OR apellido LIKE '%valor%'
  4. OR CONCAT(nombre, ' ', apellido) LIKE '%valor%'
  5. OR documento LIKE '%valor%'

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 12/06/2014, 14:11
 
Fecha de Ingreso: mayo-2014
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Consultar en diferentes columnas de una tabla con php y mysql

Gracias Alexis88.. Me funciono muy bien tu código !!!
te agradezco..
Saludos !

Etiquetas: columnas, consultar, mysql, registro, select, tabla
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 20:33.