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

Pagina de Busqueda Avanzada

Estas en el tema de Pagina de Busqueda Avanzada en el foro de ASP Clásico en Foros del Web. me faltan dos cositas 1.- Colocar un mensaje de que no se encontró nada 2.- Que me permita hacer la busqueda seleccionado las opciones que ...
  #1 (permalink)  
Antiguo 08/12/2005, 07:42
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta Pagina de Busqueda Avanzada

me faltan dos cositas



1.- Colocar un mensaje de que no se encontró nada

2.- Que me permita hacer la busqueda seleccionado las opciones que desee sin necesidad de seleccionar algo en cada list que es como sta ahora



sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"

op = " Where "



if request.QueryString ("sexo") <> "" then

Where = Where & op & "sexo = '" & request.QueryString ("sexo") & "'"

op = " and "

'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where sexo = '" & request.QueryString ("sexo") & "'"

end if



Tengo un if para cada list/menu

Tengo la bd en sql y la pagina echa en vbscript
  #2 (permalink)  
Antiguo 08/12/2005, 08:34
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Para lo primero, pregunta despues del Tabla.Open, si se encuentra en el EOF, si es así, manda el mensaje de que no se encontró nada.

Para lo segundo, no me quedó claro: "seleccionado las opciones que desee sin necesidad de seleccionar algo", ¿cómo va a seleccionar algo sin seleccionarlo?
Bueno, supongo que si modificas el list, para que permita multiselecciones, el usuario podrá seleccionar varios criterios, luego al recibir el parámetro de la lista, separas cada palabra con el espacio y formas la instrucción WHERE con concatenaciones, como lo haces, pero esta vez en un ciclo que se repita el número de criterios que se hayan seleccionado.

Bueno, la idea es esa.

Saludos
  #3 (permalink)  
Antiguo 08/12/2005, 08:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 18 años, 6 meses
Puntos: 0
Ya hice lo del mensaje de error eso me quedo perfecto ahora explico bien el problema con los list/menu

tengo esta sentencia para cada list menu

if request.QueryString ("sexo") <> "" then

Where = Where & op & "sexo = '" & request.QueryString ("sexo") & "'"

op = " and "

'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where sexo = '" & request.QueryString ("sexo") & "'"

end if


asi sucesivamente para cada list pero como yo tengo esto

if request.QueryString ("sexo") <> "" then

a la hora de realizar la busqueda si no selecciono alguna opcion de todos los list entonces no realiza la busqueda necesito si por ejem solo hago la busqueda por 4 list y no selecciono nada en los demas igualmente haga la consulta.
  #4 (permalink)  
Antiguo 08/12/2005, 09:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
a ver, "necesito si por ejem solo hago la busqueda por 4 list y no selecciono nada en los demas igualmente haga la consulta", supongo que tienes unos 20 listbox's y quieres formar el WHERE dependiendo de los que hayan seleccionado, 1, 5, 20, etc. ¿no es asi?

Bueno, es fácil, hay varias formas, una es con los mismos IF's que tienes, pero aquí hay otra más automatizada:

parametros = Request.QueryString

Esta linea agregara a la variable parámetos algo como: "sexo=femenino&edad=15&peso=50", etcétera, etcétera, dependiendo de lo que se la seleccionado

vecParam = SPLIT(parametros, "&")

Con esta linea generas un arreglo, con tantas casillas como parámetros, por ejemplo
vecParam[0] = "sexo=femenino"
vecParam[1] = "edad=15"
vecParam[2] = "peso=50"

sql = ""
for i=0 to UBound(vecParam)
vecValores = SPLIT(vecParam(i), "=")
nom = vecValores(0)
val = vecValores(1)
sql = sql & "(" & nom & " = " & val & ") and "
Next
sql = MID(sql, 1, LEN(sql)-4)

response.write sql

Esto, lo que hace, es que por cada parámetro, se separa el nombre del valor, para formar la consulta.

Revísalo a ver que te parece.

Saludos
  #5 (permalink)  
Antiguo 08/12/2005, 09:50
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 18 años, 6 meses
Puntos: 0
Lo unico que quiero es algo como un else donde diga si no seleccionaste nada entonces continua con los demas list haciendo la busqueda

sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
op = " Where "

if request.QueryString ("sexo") <> "" then
Where = Where & op & "sexo = '" & request.QueryString ("sexo") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where sexo = '" & request.QueryString ("sexo") & "'"
end if
  #6 (permalink)  
Antiguo 08/12/2005, 09:53
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Hay muchas formas de pelar al gato, si entendi bien, para mi es que tienes el WHERE donde esta el request("sexo"), entonces si no llega este parametro, no existira la clausula WHERE, pero si los AND

Posible solucion:

Código:
argcount = 0

if param len(param) > 0 then
  if argcount = 0 then
    qry = qry & " WHERE "
  else
    qry = qry & " AND "
  end if
  qry = qry & " campo_param= " & param
  argocount = argocunt + 1
end if
Y asi por cada parametro, a lo mejor es un poco latoso, pero me parece que es la forma menos abstracta de trabajar con estas consultas dinamicas.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 08/12/2005, 16:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
La solución al problema ya le ha sido dada, sino la ve, ya no es cosa de nosotros.
  #8 (permalink)  
Antiguo 12/12/2005, 09:16
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 18 años, 6 meses
Puntos: 0
ya pude resolver el problema de otra forma distinta a la que me dieron de todas formas gracias
  #9 (permalink)  
Antiguo 12/12/2005, 10:31
Avatar de Jonatatan  
Fecha de Ingreso: octubre-2004
Ubicación: Italia, Gubbio (PG)
Mensajes: 147
Antigüedad: 19 años, 7 meses
Puntos: 0
Me gustaria conocerla, puedes publicar el codigo??
__________________

Solo mi fido del tempo, le parole ed i fatti per prendere le decisioni più importanti della mia vita. // Solo confio en el tiempo, las palabras y los hechos para tomar las decisiones mas importantes de mi vida.
Jonatan Lavado
  #10 (permalink)  
Antiguo 12/12/2005, 11:59
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 18 años, 6 meses
Puntos: 0
problema resuelto

<%

sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
op = " Where "

if request.QueryString ("sexo") <> "(Indiferente)" then
Where = Where & op & "sexo = '" & request.QueryString ("sexo") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where sexo = '" & request.QueryString ("sexo") & "'"
end if

if request.QueryString ("peso") <> "(Indiferente)" then
Where = Where & op & "peso = '" & request.QueryString ("peso") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("estatura") <> "(Indiferente)" then
Where = Where & op & "estatura = '" & request.QueryString ("estatura") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("piel") <> "(Indiferente)" then
Where = Where & op & "piel = '" & request.QueryString ("piel") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("ojos") <> "(Indiferente)" then
Where = Where & op & "ojos = '" & request.QueryString ("ojos") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("color") <> "(Indiferente)" then
Where = Where & op & "color = '" & request.QueryString ("color") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("tipo") <> "(Indiferente)" then
Where = Where & op & "tipo = '" & request.QueryString ("tipo") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("sosten") <> "(Indiferente)" then
Where = Where & op & "sosten = '" & request.QueryString ("sosten") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("camisa") <> "(Indiferente)" then
Where = Where & op & "camisa = '" & request.QueryString ("camisa") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("pantalon") <> "(Indiferente)" then
Where = Where & op & "pantalon = '" & request.QueryString ("pantalon") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"
end if

if request.QueryString ("calzado") <> "(Indiferente)" then
Where = Where & op & "calzado = '" & request.QueryString ("calzado") & "'"
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla where peso = '" & prequest.QueryString ("peso") & "'"
op = " and "
'sql = "SELECT id_planilla, UploadDT, nombre, apellido, edad, sexo, peso, estatura, piel, ojos, color, tipo, sosten, camisa, pantalon, calzado, SourceFileName FROM Planilla"


end if


set rs = con.Execute(sql & where)

if rs.eof then
response.Redirect("nose_encuentra.asp")
end if

' "SELECT id_curriculum, area.cod_area, area.nom_area, tab_curriculum.nombre FROM area RIGHT JOIN tab_curriculum ON area.cod_area = tab_curriculum.cod_area WHERE area.cod_area = '" & codigoarea & "'"

%>

y en los list quedaria asi para cada uno

<SELECT onFocus="style.backgroundColor='lightblue';
style.color='black'" onBlur="style.backgroundColor='white';
style.color='black'"style="FONT-SIZE: 7pt" size=1 name=Sexo>
<option value="(Indiferente)" selected>Indiferente</option>
<option value="Femenino">Femenino</option>
<option value="Masculino">Masculino</option>
</select>
  #11 (permalink)  
Antiguo 12/12/2005, 16:33
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
todas esas decenas de lineas se ubieran podido condensar en menos de 10 si hubieras implementado el ciclo que te sugerimos.

Pero bueno, en fin, cada quien.
  #12 (permalink)  
Antiguo 12/12/2005, 18:19
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
Creo que estas exagerando con tanta consultas, utiliza el codigo de Myakire
  #13 (permalink)  
Antiguo 12/12/2005, 21:57
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 6 meses
Puntos: 0
que bueno que solucionaste todo, aunque veo detalles! pero si tu dices que te funciona es porque lo hace todo bien. No me he conectado porque estas uñas no me dejan vivir en paz ni escribir. Nos vemos
  #14 (permalink)  
Antiguo 13/12/2005, 14:48
 
Fecha de Ingreso: diciembre-2005
Mensajes: 131
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo

Lo importante es hacer que funcione sea del modo que sea ademas asi tenia casi todo el codigo y con el codigo q me dieron uds tenia q volver a realizar la pagina. Pueden ser mas amables con sus respuestas. Gracias
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 22:49.