Foros del Web » Programando para Internet » ASP Clásico »

Ideas para filtros.

Estas en el tema de Ideas para filtros. en el foro de ASP Clásico en Foros del Web. Estoy haciendo una aplicación, que muestra los datos de una BBDD...hasta ahí normal. Como hay muchos datos, he pensado, que el usuario pueda filtrar . ...
  #1 (permalink)  
Antiguo 14/03/2005, 16:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 64
Antigüedad: 20 años, 2 meses
Puntos: 0
Ideas para filtros.

Estoy haciendo una aplicación, que muestra los datos de una BBDD...hasta ahí normal.
Como hay muchos datos, he pensado, que el usuario pueda filtrar.
Es decir, de alguna forma, que pueda decidir si quiere ver sólo un tipo de datos o otro.
Por ejemplo, si la bbdd es de personas,que pudiese filtrar por:
·Sexo: Masculino /Femenino
·Ubicación: Barcelona/ Madrid/....
·etc...
Es decir, que la select grande que te muestra todo, se fuese haciendo cada vez más pequeña, hasta llegar a la persona q se busca.

No sé cual puede ser la forma más "profesional" para realizar esto. Acepto ideas.....gracias!
  #2 (permalink)  
Antiguo 14/03/2005, 17:31
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Armando 'on the fly' el WHERE de la sentencia SQL.
Suponé que tenés un formulario donde, además del criterio de búsqueda que el usuario debe colocar, tenés las opciones que dijiste: Sexo y Ubicación:

Código:
<form...>
<input type="text" name="nombre"><br>
<select name="sexo">
<option value="" selected>Indistinto</option>
<option value="M">Masculino</option>
<option value="F">Femenino</option>
</select>
<br>
<select name ="ubicacion">
<option value="" selected>Indistinto</option>
<option value="Barcelona">Barcelona</option>
<option value="Madrid">Madrid</option>
</select>
<input type="submit">
</form>
Bien, ahora tenés que recoger esos datos y en base a ellos "armar tu WHERE":

Código:
<%
Nombre = Request.Form("Nombre")
Sexo = Request.Form("Sexo")
Ubicacion = Request.Form("Ubicacion")

varWHERE = " nombre = '" & Nombre & "'"
If Sexo <> "" Then varWHERE = varWHERE & " AND sexo = '" & Sexo & "'"
If Ubicacion <> "" Then varWHERE = varWHERE & " AND ubicacion = '" & ubicacion & "'"

SQL = "SELECT * FROM tabla WHERE" & varWHERE
%>
No sé si hay una manera "más profesional"... pero es la que se me ocurre ahora ;)
__________________
...___...
  #3 (permalink)  
Antiguo 15/03/2005, 02:30
Avatar de parentesys  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 21 años, 7 meses
Puntos: 0
Creo que la mejor solución es la que propone AlZuwaga
La idea es ir montando la SELECT dependiendo de los campos seleccionados en el formulario de búsquedas.
Pero yo añadiría un pequeño detalle a la consulta... Le pondría un 1=1 por si no se elige ningún campo...


SQL = "SELECT * FROM tabla WHERE 1=1 " & varWHERE


Saludos
__________________
Administrador de :
givemefun.net
givemefun.org
  #4 (permalink)  
Antiguo 15/03/2005, 02:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 64
Antigüedad: 20 años, 2 meses
Puntos: 0
Muchas gracias...
y.... ¿se podría hacer algo parecido a vuestra idea pero en un mismo formulario?
Es decir, los filtros en la parte de arriba, y abajo los resultados en una tabla.
Supongo que la forma más sencilla sería la de llamar a la misma pagina asp,pasándole la cadena del select.
Y a la vez que fuese seleccionando filtros, que los datos de la tabla se fuesen actualizando.
  #5 (permalink)  
Antiguo 15/03/2005, 03:55
Avatar de parentesys  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 21 años, 7 meses
Puntos: 0
Sí, tú mismo te respondes. Una vez construido el SELECT haces un response.redirect a la misma página que lo crea y le pasas como parámetro la cadena del SELECT.
__________________
Administrador de :
givemefun.net
givemefun.org
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 10:32.