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

Un problema con mi buscador y paginacion

Estas en el tema de Un problema con mi buscador y paginacion en el foro de ASP Clásico en Foros del Web. Hola muchachos. Tengo el problema con el siguiente buscador. El asunto es que tengo una web en donde en un form pones un producto que ...
  #1 (permalink)  
Antiguo 19/12/2005, 12:45
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 23 años, 1 mes
Puntos: 1
Un problema con mi buscador y paginacion

Hola muchachos. Tengo el problema con el siguiente buscador. El asunto es que tengo una web en donde en un form pones un producto que quieres buscar, y combiné un buscador ya hecho con un sistema de paginacion. El unico problema es que cuando le das a buscar, la primera pagina si te da los resultados de la busqueda, pero de la segunda en adelante, me devuelve todos los productos que tengo disponible, y no se limita a solamente mostrar lo que escribi en el form.

No se si el problema es porque tengo que trabajar con GET o POST, la variable buscar la obtengo desde post, pero la paginacion la trabaja desde request.querystring... Podria alguien echarle un vistazo al siguiente codigo, y mostrarme donde estan los errores por favor?

<%
buscar = Request.Form("textfield")

sSQL="SELECT titulo, ID FROM recetas WHERE ingre LIKE '%" & buscar & "%' ORDER BY ID desc"

If Request.QueryString("pag")<>"" then
Session("pagina")=Request.QueryString("pag")
Else
Session("pagina")=1
End If

Const adCmdText = &H0001
Const adOpenStatic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
strconn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cocinadivertida.mdb")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
Conn.Open strconn
RS.Open sSQL,Conn,adopenstatic,adcmdtext

num_registros = 20

RS.PageSize=num_registros
RS.AbsolutePage=Session("pagina")
%>

<div align="center">
N&uacute;mero de p&aacute;gina actual: <b><%=Session("pagina")%></b>
<br>
N&uacute;mero de p&aacute;ginas total: <b><%=RS.PageCount%></b>
<br>
N&uacute;mero de registros por p&aacute;gina: <b><%=RS.PageSize%></b>
<br>
N&uacute;mero de registros seleccionados: <b><%=RS.RecordCount%></b>
</div>
<br><br>

<table cellspacing="2" cellpadding="2" border="1" align="center">
<%
'Contamos el numero de campos de la tabla
num_campos=RS.Fields.Count
For campo=0 to num_campos-1%>
<td align="center"><%=RS(campo).Name%></td>
<%
Next
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)
registros_mostrados = registros_mostrados +1
%>
<tr>
<%For campo=0 to num_campos-1 %>
<td align="center"><%=RS(campo)%></td>
<%Next%>
</tr>
<%
RS.MoveNext
Wend
%>
<tr>
<td colspan="<%=num_campos%>" align="center">
<%
i=0
While i<RS.PageCount
i=i+1
%>
<b><a href="paginador2.asp?pag=<%=i%>"><%=i%></a></b>
<%
Wend
%>
</td>
</tr>
</table>
<%
RS.Close
Conn.Close
%>

Gracias por todo.

Eduardo
  #2 (permalink)  
Antiguo 19/12/2005, 15:12
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
tu problema tiene que ver con los enlaces del pie de pagina.

buscar = Request.Form("textfield")

sSQL="SELECT titulo, ID FROM recetas WHERE ingre LIKE '%" & buscar & "%' ORDER BY ID desc"



<b><a href="paginador2.asp?pag=<%=i%>&textfield=<%=buscar%>"><%=i%></a></b>

tenes que enviar en cada enlace de la paginacion la palabra que estas buscando
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 20/12/2005, 08:23
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Asi es, cada vez que pagines debes de enviar el criterio de la busqueda, de otra forma asp no va ha a recordar lo que estás buscando.Si es una simple busqueda de un solo criterio lo resuelves como te comento el compañero.
  #4 (permalink)  
Antiguo 20/12/2005, 15:19
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 23 años, 1 mes
Puntos: 1
Gracias, efectivamente si me funcionó. Pero ahora tengo un problema. Cuando la palabra no existe en la base de datos, me da error. Como puedo solucionar esto?
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 14:27.