Ver Mensaje Individual
  #125 (permalink)  
Antiguo 02/03/2006, 10:03
Avatar de gorka_arai
gorka_arai
 
Fecha de Ingreso: octubre-2005
Mensajes: 281
Antigüedad: 18 años, 6 meses
Puntos: 1
Paginar resultados

¿Cómo muestro mis resultados por páginas? Lo que se llama "paginación de resultados"...

He akí una manera de paginar tus resultados para dar un toque "pofesional" a tu web:

Este código debe ir en una página que se llame "Paginar.asp":
Código:
<HTML>
<BODY>
<%
Dim mostrar 'cantidad de registros a mostrar por página
Dim cant_paginas 'cantidad de páginas que recibimos
Dim pagina_actual 'La página que mostramos
Dim registro_mostrado 'Contador utilizado para mostrar las páginas
Dim I 'Variable Loop
dim strsql 'Consulta sql

mostrar = 20 ' Pueden modificar este número para cambiar la cantidad de registros por página

' IF para saber que página mostrar
if request("page")="" then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If
'Conexión con la BD
dim conex,reg,sql,usuario 
set conex=server.CreateObject("ADODB.Connection")
set reg=server.CreateObject("ADODB.Recordset")
conex.ConnectionString="provider=microsoft.jet.oledb.4.0; data source=" & server.MapPath("Nombre_de_tu_base.mdb")
conex.Open 
sql="select * from tabla where Nombre_campo_tabla=" & nom_variable & ""
reg.Open sql,conex,3,2
' Creamos el RecordSet y definimos la cantidad de registros a mostrar
reg.PageSize = mostrar
reg.CacheSize = mostrar
'contamos las páginas que se formaron con la variable mostrar.
cant_paginas = reg.PageCount
' Si el pedido de página cae fuera del rango,
' lo modificamos para que caiga dentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1

' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
If cant_paginas = 0 Then%>
	<%Response.Write("NO HAY REGISTROS")%>
<%Else
' Nos movemos a la página elegida
reg.AbsolutePage = pagina_actual
' Mostramos el dato de que página estamos...
%>
<FONT face=Arial><FONT>
<FONT SIZE="+1">Página <B><%= pagina_actual %></B> de <B><%= cant_paginas %></B></FONT>
<%
' Espacios
Response.Write "<BR><BR>" & vbCrLf
'iniciamos la tabla donde mostraremos todo
Response.Write "<TABLE BORDER=""1"" width=""300"" bordercolor=""black"">" & vbCrLf%>
<tr bgcolor=red>
				<th colspan=20><FONT face=Arial size=2><STRONG><FONT color=ivory> TITULO TABLA</STRONG></FONT></FONT></th>
			</tr><br>
<%' Mostramos los titulos de las columnas... (pueden sacar ese FOR para eliminar eso)
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To reg.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD><B><FONT face=Arial size=2 color=mediumblue>"
Response.Write reg.Fields(I).Name
Response.Write "<B></TD></FONT>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Hacemos el bucle mostrando los datos del registro
registro_mostrado = 0
Do While registro_mostrado < mostrar And Not reg.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To reg.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write reg.Fields(I)
Response.Write "</TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Sumamos 1 a los mostrados
registro_mostrado = registro_mostrado + 1
' Nos movemos al próximo registro...
reg.MoveNext
Loop

'listo...
Response.Write "</TABLE>" & vbCrLf
End If

' Cerramos y limpiamos...
reg.Close
Set reg = Nothing
conex.Close
Set conex = Nothing

' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
If pagina_actual > 1 Then
%>
</FONT></FONT>
<A href="./paginar.asp?eje=30&amp;page=<%= pagina_actual - 1 %>" ><FONT 
face=Arial>[&lt;&lt; Anterior]</FONT> </a>
<%
End If

' mostramos la paginacion por numeros de página
For I = 1 To cant_paginas
If I = pagina_actual Then
%>
<%= I %>
<%
Else
%>
<FONT face=Arial> </FONT>
<A href="./paginar.asp?eje=30&amp;page=<%= I %>" ><%= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%>
<A href="./paginar.asp?eje=30&amp;page=<%= pagina_actual + 1 %>" ><FONT 
face=Arial>[Próximo &gt;&gt;]</FONT ></a>
<%
End If
'Fin...
%>
%>
<form action="Paginar.asp" method="post" name="form332" id="form332">
	<input type="hidden" name="page" value="<%=pagina_actual%>">
	<p><input type="submit" value="VOLVER" name="cmd_volver"></p>
</form>
<%
</BODY>
</HTML>

Última edición por gorka_arai; 20/04/2006 a las 00:56