Hola amigos, buscando por la web encontré una buena clase para paginar, creo que fue sacada de aquí, por lo que leí la realizo alguien llamado Pinedo, el lugar de donde lo saque ya le había hecho algunas modificaciones, yo le hice también algunas, pero estoy teniendo otros problemas, y es que para que funcione tengo que utilizar mysql y mysqli, es aquí donde pido su ayuda para dejar al final una buena clase de paginacion que solo utilice mysqli, espero que me puedan ayudar ya que creo que este tema sera buena ayuda para las demás personas que necesiten crear una paginacion rápida.
Gracias.
Código PHP:
<?php
if(empty($_pagi_sql)){
die("<b>Error Paginator : </b>No se ha definido la variable \$_pagi_sql");
}
if(empty($_pagi_cuantos)){
$_pagi_cuantos = 20;
}
if(!isset($_pagi_mostrar_errores)){
$_pagi_mostrar_errores = true;
}
if(!isset($_pagi_conteo_alternativo)){
$_pagi_conteo_alternativo = false;
}
if(!isset($_pagi_separador)){
$_pagi_separador = " | ";
}
if(isset($_pagi_nav_estilo)){
$_pagi_nav_estilo_mod = "class=\"$_pagi_nav_estilo\"";
}else{
$_pagi_nav_estilo_mod = "";
}
if(!isset($_pagi_nav_anterior)){
$_pagi_nav_anterior = "« Anterior";
}
if(!isset($_pagi_nav_siguiente)){
$_pagi_nav_siguiente = "Siguiente »";
}
if(!isset($_pagi_nav_primera)){
$_pagi_nav_primera = "«« Primera";
}
if(!isset($_pagi_nav_ultima)){
$_pagi_nav_ultima = "Última »»";
}
$NombPag_Primera = $_SERVER['PHP_SELF'];
$Desti_Pag = "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; url=$NombPag_Primera\">
<script type=\"text/javascript\"> window.location=\"$NombPag_Primera\"; </script>";
@$_Rec_pagn = $_GET['_pagi_pg'];
if (!preg_match("/^[0-9]{0,25}$/", $_Rec_pagn)) die ($Desti_Pag);
if (empty($_GET['_pagi_pg'])){
$_pagi_actual = 1;
}else{
$_pagi_actual = $_GET['_pagi_pg'];
}
if($_pagi_conteo_alternativo == false){
$_pagi_sqlConta = preg_replace("/select[[:space:]](.*)[[:space:]]from/", "SELECT COUNT(*) FROM", $_pagi_sql);
$_pagi_result2 = mysql_query($_pagi_sqlConta);
if($_pagi_result2 == false && $_pagi_mostrar_errores == true){
die (" Error en la consulta de conteo de registros: $_pagi_sqlConta. Mysql dijo: <b>".mysqli_error()."</b>");
}
$_pagi_totalReg = mysql_result($_pagi_result2,0,0);
$_Num_regis_Consul = mysqli_num_rows($_pagi_result);
}else{
$_pagi_result3 = mysql_query($_pagi_sql);
if($_pagi_result3 == false && $_pagi_mostrar_errores == true){
die (" Error en la consulta de conteo alternativo de registros: $_pagi_sql. Mysql dijo: <b>".mysqli_error()."</b>");
}
$_pagi_totalReg = mysqli_num_rows($_pagi_result3);
$_Num_regis_Consul = mysqli_num_rows($_pagi_result);
}
$_pagi_totalPags = ceil($_Num_regis_Consul / $_pagi_cuantos);
$_pagi_enlace = $_SERVER['PHP_SELF'];
$_pagi_query_string = "?";
if(!isset($_pagi_propagar)){
if (isset($_GET['_pagi_pg'])) unset($_GET['_pagi_pg']);
$_pagi_propagar = array_keys($_GET);
}elseif(!is_array($_pagi_propagar)){
die("<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array");
}
foreach($_pagi_propagar as $var){
if(isset($GLOBALS[$var])){
$_pagi_query_string.= $var."=".$GLOBALS[$var]."&";
}elseif(isset($_REQUEST[$var])){
$_pagi_query_string.= $var."=".$_REQUEST[$var]."&";
}
}
$_pagi_enlace .= $_pagi_query_string;
$_pagi_navegacion_temporal = array();
if ($_pagi_actual != 1){
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".
$_pagi_url."'>$_pagi_nav_primera</a>";
$_pagi_url = $_pagi_actual - 1;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".
$_pagi_url."'>$_pagi_nav_anterior</a>";
}
if ($enlacesdepaginacion > 0)
{
$_pagi_nav_num_enlaces = $enlacesdepaginacion;
}
else
{
}
if(!isset($_pagi_nav_num_enlaces)){
$_pagi_nav_desde = 1;
$_pagi_nav_hasta = $_pagi_totalPags;
}else{
$_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) - 1;
$_pagi_nav_desde = $_pagi_actual - $_pagi_nav_intervalo;
$_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo;
if($_pagi_nav_desde < 1){
$_pagi_nav_hasta -= ($_pagi_nav_desde - 1);
$_pagi_nav_desde = 1;
}
if($_pagi_nav_hasta > $_pagi_totalPags){
$_pagi_nav_desde -= ($_pagi_nav_hasta - $_pagi_totalPags);
$_pagi_nav_hasta = $_pagi_totalPags;
if($_pagi_nav_desde < 1){
$_pagi_nav_desde = 1;
}
}
}
for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_pagi_i++){
if ($_pagi_i == $_pagi_actual) {
$_pagi_navegacion_temporal[] = "<span ".$_pagi_nav_estilo_mod.">$_pagi_i</span>";
}else{
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".
$_pagi_i."'>".$_pagi_i."</a>";
}
}
if ($_pagi_actual < $_pagi_totalPags){
$_pagi_url = $_pagi_actual + 1;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".
$_pagi_url."'>$_pagi_nav_siguiente</a>";
$_pagi_url = $_pagi_totalPags;
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".
$_pagi_url."'>$_pagi_nav_ultima</a>";
}
$_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal);
$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;
$_pagi_sqlLim = $_pagi_sql." LIMIT $_pagi_inicial,$_pagi_cuantos";
$_pagi_result = mysql_query($_pagi_sqlLim);
if($_pagi_result == false && $_pagi_mostrar_errores == true){
die ("Error en la consulta limitada: $_pagi_sqlLim. Mysql dijo: <b>".mysql_error()."</b>");
}
$_pagi_desde = $_pagi_inicial + 1;
$_pagi_hasta = $_pagi_inicial + $_pagi_cuantos;
if($_pagi_hasta > $_Num_regis_Consul){
$_pagi_hasta = $_Num_regis_Consul;
}
$_pagi_info = "desde el $_pagi_desde hasta el $_pagi_hasta de un total de $_Num_regis_Consul";
?>