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

Ayuda Con Arreglos Y Sql

Estas en el tema de Ayuda Con Arreglos Y Sql en el foro de ASP Clásico en Foros del Web. Necesito su ayuda, es complicado lo que estoy tratando de hacer, o al menos ya me quebré la cabeza y no doy con la manera ...
  #1 (permalink)  
Antiguo 26/09/2007, 13:25
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Ayuda Con Arreglos Y Sql

Necesito su ayuda, es complicado lo que estoy tratando de hacer, o al menos ya me quebré la cabeza y no doy con la manera de hacerlo...

Quiero hacer unas búsquedas múltiples, es decir que se puedan seleccionar varias opciones al mismo tiempo, inicio con los chekbox

<input type="checkbox" name="opcion1" value="1" />
<input type="checkbox" name="opcion1" value="2" />
<input type="checkbox" name="opcion1" value="3" />
<input type="checkbox" name="opcion1" value="4" />


<input type="checkbox" name="sector2" value="1">
<input type="checkbox" name="sector2" value="2">



los meto a un arreglo de consultas a la hora de recoger los valores:

Dim opcion1(4)
opcion1(1) = " (tamano LIKE '%mi%' or tamano LIKE '%ni%') OR"
opcion1(2) = " (tamano LIKE '%pe%') OR"
opcion1(3) = " (tamano LIKE '%mediana%' or tamano LIKE '%ME%') OR"
opcion1(4) = " (tamano LIKE '%GD%' or tamano LIKE '%GRA%' or tamano LIKE '%GRE%') OR"


Dim sector2(4)
sector2(1) = " (sector LIKE '%ind%' ) OR"
sector2(2) = " (tamano LIKE '%serv%') OR"





eso lo meto a una consulta unica donde voy uniendo todas las consultas de mis arreglos y me da el resultado final, el problema es que para que en verdad me mande todo lo del arreglo opcion1, se debe poner OR al final en cada linea. y asi en cada arreglo. PERO al unir la consulta de un arreglo con otro pues habra un error por el OR final.

Suponiendo que selecciono los 3 primeros chekbox opcion1 y los 2 sector2, Queda por ejemplo asi:

SELECT * FROM BASE Where (tamano LIKE '%mi%' or tamano LIKE '%ni%') OR (tamano LIKE '%pe%') OR (tamano LIKE '%mediana%' or tamano LIKE '%ME%') OR (sector LIKE '%ind%' ) OR (sector LIKE '%serv%')

Lo cual debe aparecer asi para que se pueda realizar la consulta:

SELECT * FROM BASE Where (tamano LIKE '%mi%' or tamano LIKE '%ni%') OR (tamano LIKE '%pe%') OR (tamano LIKE '%mediana%' or tamano LIKE '%ME%') AND (sector LIKE '%ind%' ) OR (sector LIKE '%serv%')

espero me haya explicado con lo que quiero hacer, osea unir cada consulta de arreglos con un AND. Pienso que quizas con un IN, pero no se como guardar mis consultas en un in para luego unirlos con el AND.... sorry, ya me perdi. por favor, necesito que me ayuden... Gracias--- Saludos!!!
  #2 (permalink)  
Antiguo 26/09/2007, 13:46
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Ayuda Con Arreglos Y Sql

ummm

me perdi en la lectura

pero vi tus checkbox se llaman igual lo que tu recibes al seleccionr 2 de opcion1, tu recibes

Cita:
opcion1 = request("opcion1")
opcion1 = 1, 2

si selecionaras los cuatro al hacer el mismo reques tu tendrias
opcion1 = 1, 2, 3, 4

entonces un slq puede ser

Cita:
select * from tutabla where id in("& opcion1 &")
pero creo que no es tu caso... pero no se, porque el checkbox se llama igual

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 26/09/2007, 14:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Ayuda Con Arreglos Y Sql

Bueno, no se exactamente los tipos de datos que manejas y demas pues veo que tienes operadores LIKE, regularmente estas consultas dinamicas las deberias de manejar divididas para vencerlas

Código:
argCount = 0
qry = "SELECT campo FROM tabla"

if len(opcion(1)) > 0 then
  if argCount = 0 then
     qry = qry & " WHERE "
  else
     qry = qry & " OR "
  end if
   qry = qry & " (tamano LIKE '%mi%' or tamano LIKE '%ni%') "
  argCount = argCount + 1
end if

if len(opcion(2)) > 0 then
  if argCount = 0 then
     qry = qry & " WHERE "
  else
     qry = qry & " OR "
  end if
   qry = qry & " (tamano LIKE '%pe%')"
  argCount = argCount + 1
end if

etc..
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 11:30.