Código ASP:
Ver original<%
'Parámetros:
'Sentencia_Where: Sentencia SQL con la que generar el Recordset desde el Where al final
'Pagina_Solicitada: Página del recordset solicitada para mostrar
'Mostrar: número de registros por página
'Sentencia_Select: usada para usar * o distinct....
'
'La función crea el Recordset solicitado y devuelve un array:
' Posición 0 : Páginas totales resultantes
' Posición 1 : Página en la que se posiciona, esta puede diferir de la
' solicitada, es decir, si se solicita la página 32 del recordset
' y sólo hay 28 páginas, el valor será 28.
'
Function CrearRs_paginado_MySQL (Tabla, Sentencia_Where, Pagina_Solicitada, Mostrar, Sentencia_Select)
Dim Devuelve(1)
If Tabla="" Then Exit Function
If Sentencia_Select = "" Then Sentencia_Select="*"
'Hay que crear un Rs para obtener el número de registros, en MySQL no
'funciona el Rs.RecordCount, pasamos el valor del campo a la variable y
'cerramos el Rs.
CrearRs "SELECT Count(*) as Num_Registros FROM " & Tabla & " " & Sentencia_Where
Num_Registros = Cint(Rs("Num_Registros"))
CerrarRs
if Mostrar = "" then
Mostrar = 35
Else
Mostrar = Cint(Mostrar)
End if
' Averiguamos la cantidad de páginas y redondeamos, si la división devuelve
' 2.34874 páginas, es que tenemos 3 páginas a mostrar.
Cant_Paginas = Redondear_Arriba(Num_Registros/Mostrar, 0)
' IF para saber que página mostrar, si está en blanco solicitamos la
' primera y si no averiguamos que no está fuera de los límites y la
' cuadramos.
If Pagina_Solicitada = "" Then
Pagina_Solicitada = 1
Else
Pagina_Solicitada = CInt(Pagina_Solicitada)
If Pagina_Solicitada > Cant_Paginas Then Pagina_Solicitada = Cant_Paginas
If Pagina_Solicitada < 1 Then Pagina_Solicitada = 1
End If
' Creamos el Rs
' Recordamos: Limit X, N: Límite desde el resgistro X hasta los N siguientes
CrearRs_paginado_MySQL_sql = "select " & Sentencia_Select & " from " & Tabla & " " & Sentencia_Where & " Limit " & ((Pagina_Solicitada-1) * Mostrar) & ", " & Mostrar
CrearRs CrearRs_paginado_MySQL_sql
If Rs.EOF Then
'Cantidad de páginas
Devuelve(0) = 0
'Página Solicitada
Devuelve(1) = 0
CrearRs_paginado_MySQL = Devuelve
Else
Devuelve(0) = Cant_Paginas
Devuelve(1) = Pagina_Solicitada
CrearRs_paginado_MySQL = Devuelve
End If
End Function
%>
Esta es la función que uso para crear los RecordSet, depende de otras como CrearRs que tan sólo crea el recordset. Estoy deseando de perderla de vista.
Una vez que tengo el recordset creo la tabla, casi todas iguales al 90%, pero por culpa de ese 10% no puedo estandarizarlas.