Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/08/2007, 16:23
Avatar de JuanRAPerez
JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Paginar registros de MySQL en ASP

aqui esta
funcionando aun tengo algunos detalles con la paginacion pero bueno empezamos

Definimos cuantos registros mostrarmos y en que pagina estamos
Cita:
CantidadMostrada = request("paginarpor")
if CantidadMostrada = "" then
CantidadMostrada = 20
end if

pagina = request("pagina")
if pagina = "" then
pagina = 1
else
pagina = cInt(request("pagina"))
end if
Hacemos nuestra primer SQL
Cita:
cadena = "SELECT * FROM tutabla where NombreCompleto like '%"& nombreabuscar &"%' order by NombreCompleto ASC "
cadena = cadena & " limit "&(pagina-1) * CantidadMostrada &", " & CantidadMostrada &" "
en donde: (pagina-1) * CantidadMostrada = a si estamos en la pagina 5 le quitamos uno y nos queda 4, eso lo multiplicamos por 20 (que para el ejemplo es la cantidad a mostrar.

eso quire decir que cuando estemos en la pagina 5 el sql quedaria asi:
limit 80, 20 (eso quire seleccione todos desde el registro 80, hasta 20 mas (o sea 100 como registro limite - si me equivoco es que ando fumado)

luego
Cita:
Set RS = Server.CreateObject("ADODB.Recordset")
rs.open cadena,oConnConexionPrincipal
If RS.EOF = false AND RS.BOF = false then
Hacemos nuestra segunda SQL
En esta SQL extraemos todos los registros sin poner limite que cumplan con las mimas condiciones de la consulta anteior (todos los where se dejan igual solo se quita el limite)
Cita:
cadena2 = "SELECT * FROM tutabla where NombreCompleto like '%"& nombreabuscar &"%' order by NombreCompleto ASC "
Obtenemos el total de paginas
Cita:
Set RS2 = Server.CreateObject("ADODB.Recordset")
rs2.open cadena2,oConnConexionPrincipal
total = 0
while not rs2.eof
total = total + 1
rs2.movenext
wend
paginas = int( Total / CantidadMostrada ) + 1
hasta ahi lo interesante luego hacemos el recorrido
Cita:
while not rs.eof
'imprimimos registros de nuestra priemr consulta (ojo es el RS no el RS2)
rs.movenext
wend
rs.close
imprimo los numeros de páginas
ojo, si mandas otras variables en este enlace tienes que poner todas las otras variables necesarias para la paginacion
Cita:
<p align="left">
<%For p = 1 To paginas%>
<a href="<%=mipaginacion.asp?pagina=<%= P %>"><%= P %>
</a> |
<%Next%>
</p>

Espero haber sido explicativo si no lo fui lo siento :(

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador

Última edición por JuanRAPerez; 23/08/2007 a las 16:30