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

Busqueda con multiples campos

Estas en el tema de Busqueda con multiples campos en el foro de Bases de Datos General en Foros del Web. Hola! Estoy haciendo un sistema de busqueda en una tabla de una base de datos, pero me interesa que sea de múltiples campos. Es decir, ...
  #1 (permalink)  
Antiguo 05/09/2010, 11:32
 
Fecha de Ingreso: mayo-2010
Mensajes: 20
Antigüedad: 13 años, 11 meses
Puntos: 0
Exclamación Busqueda con multiples campos

Hola!

Estoy haciendo un sistema de busqueda en una tabla de una base de datos, pero me interesa que sea de múltiples campos. Es decir, hay un formulario con un campo para el nombre, apellido, correo, poblacion, etc... (muchos mas campos).

Para hacer la consulta he utilizado la siguiente sentencia:
Código PHP:
"SELECT id, nom, cognom, mail, materies, poblacio FROM profes WHERE materies LIKE '%$materies%' AND poblacio LIKE '%$poblacio%' AND tarifa LIKE '%$tarifa%' AND disp_dilluns LIKE '".$results['cbdll']."' AND disp_dimarts LIKE '".$results['cbdm']."' AND disp_dimecres LIKE '".$results['cbdc']."' AND disp_dijous LIKE '".$results['cbdj']."' AND disp_divendres LIKE '".$results['cbdv']."' AND disp_dissabte LIKE '".$results['cbds']."' AND disp_diumenge LIKE '".$results['cbdg']."' AND classe_casa LIKE '".$results['cbprofe']."' AND classe_domicili LIKE '".$results['cbalumne']."' AND classe_escola LIKE '".$results['cbescola']."' AND curs_1cp LIKE '".$results['cb1ep']."' AND curs_2cp LIKE '".$results['cb2ep']."' AND curs_3cp LIKE '".$results['cb3ep']."' AND curs_1ce LIKE '".$results['cb1eso']."' AND curs_2ce LIKE '".$results['cb2eso']."' AND curs_btx LIKE '".$results['cbbatx']."' AND curs_uni LIKE '".$results['cbuni']."' AND curs_ext LIKE '".$results['cbext']."'  ORDER BY nom"
El problema es que así no me da ningun resultado (si escribo una poblacion solamente, me deberian salir todos los registros con esa poblacion). He provado de cambiar la etiqueta AND por OR, pero entonces detecta todos los registros, porque siempre tienen algo en comun. Alguna ayuda?
  #2 (permalink)  
Antiguo 06/09/2010, 03:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Busqueda con multiples campos

La verdad es que tantas restricciones, sin comodines y unidas por 'and' va a ser un poco difícil de cumplir. Te sugiero que la consulta la crees en función de los campos a tener en cuenta (si estás con php, por ejemplo).
Si estás haciéndolo directamente en la DBM (Access, por ejemplo), también deberías porder hacerlo programando en Visual Basic.
Aún así, si no quieres hacerlo, tienes la opción de "neutralizar" los 'ands' que no necesitas. Para todas las restricciones deberías hacer esto:
Código SQL:
Ver original
  1. AND classe_domicili LIKE '".$results['cbalumne']."' AND

se convierte en:

Código SQL:
Ver original
  1. AND ((classe_domicili LIKE '".$results['cbalumne']."') OR ($results['cbalumne'] LIKE "")) AND

suponiendo que los campos sin valor se reciben como una cadena vacía. Si no es así, toca pensar otra solución.
  #3 (permalink)  
Antiguo 07/09/2010, 12:54
 
Fecha de Ingreso: mayo-2010
Mensajes: 20
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Busqueda con multiples campos

Muchas gracias!! Ahora funciona bien!!

Etiquetas: campos, multiples, busquedas
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 08:06.