Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/10/2014, 14:06
dgrvedado
 
Fecha de Ingreso: diciembre-2010
Ubicación: Asunción
Mensajes: 41
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Paginador php inteligente

Esto puede servirte de base...

Código PHP:
/******************************************************/
/* Funcion paginar
 * actual:          Pagina actual
 * total:           Total de registros
 * por_pagina:      Registros por pagina
 * enlace:          Texto del enlace
 * maxpags:         El máximo de páginas a presentar simultáneamente (opcional)
 * Devuelve un texto que representa la paginacion
 */
function paginar($actual$total$por_pagina$enlace$maxpags=0) {
  
$total_paginas ceil($total/$por_pagina);
  
$anterior $actual 1;
  
$posterior $actual 1;
  
$minimo $maxpags max(1$actual-ceil($maxpags/2)): 1;
  
$maximo $maxpags min($total_paginas$actual+floor($maxpags/2)): $total_paginas;
  if (
$actual>1)
    
$texto "<a href=\"".$enlace."&pagina=$anterior\" class=\"enlaces\">&laquo; Anterior</a> ";
  else
    
$texto "<b>&laquo; Anterior</b> ";
  if (
$minimo!=1$texto.= "... ";
  for (
$i=$minimo$i<$actual$i++)
    
$texto .= "<a href=\"".$enlace."&pagina=$i\" class=\"enlaces\">$i</a> ";
  
$texto .= "<b>$actual</b> ";
  for (
$i=$actual+1$i<=$maximo$i++)
    
$texto .= "<a href=\"".$enlace."&pagina=$i\" class=\"enlaces\">$i</a> ";
  if (
$maximo!=$total_paginas$texto.= "... ";
  if (
$actual<$total_paginas)
    
$texto .= "<a href=\"".$enlace."&pagina=$posterior\" class=\"enlaces\">Siguiente &raquo;</a>";
  else
    
$texto .= "<b>Siguiente &raquo;</b>";
  return 
$texto;
}

?> 
En tu html puedes poner:
Código HTML:
Ver original
  1. <div align="center"><small>Pagina</small><? echo "$pagina";?> &nbsp;&nbsp;&nbsp;&nbsp;<small>
  2. <? echo paginar($pagina, $total_registros, $registros, $enlace."c=$c&o=$o", $maxpags=20); ?></small></div>