Ver Mensaje Individual
  #11 (permalink)  
Antiguo 08/01/2008, 16:58
rdm
 
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 57
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: consulta a bd con multiples parametros

Hola, te tiro una idea que a mí me funciona perfecto, vamos a suponer que tienes una tabla que mantiene las referencias con id a otras tablas, por ejemplo: nro_id, cod_documento, nombre, cod_provincia, cod_estado, tu problema es que tienes los campos cod_documento, cod_provincia y cod_estado en tablas externas y referenciadas por un id, entonces cuando quieres realizar la búsqueda por la descripción del documento(ej, dni, ci, cpf, etc que es lo que verá el operador en tu página de búsquedas), o por provincia, se te complica, yo he resueldo esto realizando una vista en la cual enlazo las tablas auxiliares y los campos de id y realizo las consultas sobre la vista y no sobre las tablas principales ni auxiliares. Luego para generar el filtro de búsqueda en forma dinámica, utiliza la siguiente estructura:

dimensionas un string cad_sql = "",
si el operador seleccionó provincia, concatenas a cad_sql el nombre del campo y el valor enviado desde tu formulario,
luego pones otro if para el próximo campo y te fijas si cad_sql tiene contenido distinto de "", entonces sabrás que tienes que concatenar el filtro usando un AND y así con todos los campos que te propone el filtro, por último, si el usuario no realizó ninguna selección, lo podrás determinar fijandote si cad_sql es igual a "", con lo cual, si es necesario, podrás aplicar un select sin filtro.

Saludos y suerte en tu proyecto.

pd. este código es independiente del lenguaje de programación y base de datos que uses, pues estás construyendo dinamicamente el select y luego lo aplicas a tu base de datos.