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

paginacion que no funciona ...

Estas en el tema de paginacion que no funciona ... en el foro de ASP Clásico en Foros del Web. Hola a tod@s. Me surgio un problema con una paginación de resultados un poco dificil de explicar. Mejor dicho un poco rollo de leer. Bueno ...
  #1 (permalink)  
Antiguo 23/01/2003, 17:45
 
Fecha de Ingreso: mayo-2002
Mensajes: 35
Antigüedad: 22 años, 1 mes
Puntos: 0
paginacion que no funciona ...

Hola a tod@s. Me surgio un problema con una paginación de resultados un poco dificil de explicar.
Mejor dicho un poco rollo de leer. Bueno a ver si conseguís llegar hasta el final y me echais una mano.
Tengo dos paginas, en una se introducen datos para realizar una busqueda en la base de datos
del sitio y en la otra se muestran los resultados correspondientes a los criterios de
busqueda que se hayan introducido en la primera.
El resultado de la busqueda es correcto, el problema esta en la paginacion de estos
resultados. Cuando clico en el enlace que me debe llevar a
la siguiente pagina de resultados, el error que me da es el siguiente:
Cita:
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'Categoria= And Poblacion='' And Disponibilidad='''.
Resultado.asp, line 68
En la pagina buscar.asp, tengo el formulario:
Código:
<form name="formbuscar" method="POST" action="Resultado.asp">
con inputs y selects. Por ejemplo el select correspondiente a Poblacion lo tengo asi definido:
Código:
<select name="inpob" class="formtext" value="<%=request.form("inpob")%>">
En la pagina resultado.asp, cuyo formulario lo defino asi:
Código:
<form action="Resultado.asp" name="formResultado" method="post">
recojo los valores de los inputs. Por ejemplo para Poblacion y Categoria:
Código:
SQL = "select * from Tabla where Categoria=" &request.form("incat")& " And Poblacion='" &request.form("inpob")& "'"
Luego utilizo una vble que llamo Criterio a la ke voy añadiendo condiciones segun se meta
informacion en los campos del formulario buscar,por ejemplo, Criterio=Criterio & " And Precio>=" &preciomin:
Código:
Criterio="" 
.
.
.

Criterio = Criterio & " order by precio, superficie"
set rs = createobject("ADODB.RecordSet")
rs.pagesize=regsporpag
rs.cachesize=regsporpag
rs.open sql & Criterio, cnn, 3, 1 //esta es la linea 68 de resultado.asp donde me da el error que comente arriba
cantpags = rs.pagecount
.
.
.
Parece que pierdo los valores del WHERE de la consulta SQL en Resultado.asp, cuando pasa
a la pagina siguiente; no se si tengo que utilizar campos ocultos y luego pasarlos como parametros
en los vinculos que llevan al resto de paginas ... (ni siquiera se como se haria) o que ... ...
¿Que opinais?.

Un saludo.

Gracias y un saludo a todos.
  #2 (permalink)  
Antiguo 24/01/2003, 09:31
Avatar de nazkatuta  
Fecha de Ingreso: julio-2002
Ubicación: EH - BCN
Mensajes: 222
Antigüedad: 21 años, 10 meses
Puntos: 0
Pues si,

estás perdiendo los valores.

La primera busqueda te funciona porque haces un submit desde la página de buscar y mediante request.form tomas los datos de las variables de busqueda, pero al paginas, estás llamando a la misma pagina de resultados desde ella, por lo que no pasas ninguna variable.

Yo lo que haría es pasar la variable "consulta" al pulsar en cada numero de página.

suponiendo que la pagina es resultados.asp sería

<a href="resultados.asp?consulta=<%=consulta%>&pag=1" >1</a>
<a href="resultados.asp?consulta=<%=consulta%>&pag=2" >2</a>
.
.
.
<a href="resultados.asp?consulta=<%=consulta%>&pag=N" >N</a>


Entonces cada vez que cambiens de pagina le estaras pasando ya los criterios de busqueda.

Ahora bien, el comportamiento será diferente si vienes desde la página de buscar o desde "resultados.asp", esto repercute en la consulta SQL que te montes...

para saberlo basta con comprobar si request.queystring("consulta") tiene valor o está vacio...

si está vacio tendras que montarla como lo venias haciendo hasta ahora, si tiene valor pues entonces la consulta sería "SELECT from tabla WEHRE " & consulta & " ODER BY campo"

Espero que te sirva.
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 21:50.