Foros del Web » Programando para Internet » PHP »

Sistema de Paginacion [APORTE]

Estas en el tema de Sistema de Paginacion [APORTE] en el foro de PHP en Foros del Web. Bien, quiero compartir este sistema de paginacion que es muy profesional y que no tiene mucho codigo. Lo que me llevo a hacerlo es que ...
  #1 (permalink)  
Antiguo 24/01/2012, 13:23
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 126
Antigüedad: 14 años, 2 meses
Puntos: 11
Sistema de Paginacion [APORTE]

Bien, quiero compartir este sistema de paginacion que es muy profesional y que no tiene mucho codigo. Lo que me llevo a hacerlo es que encontre muchos sistemas bastante parecidos, pero ninguno era eficiente a la hora de mostrar los enlaces. Por eso lo programe dejandolo simple y profesional para que cualquiera pueda usarlo. El sistema cuenta con un boton para pasar siguiente, anterior, pasar una pagina y retroceder una pagina. En fin, pueden verlo en accion aqui. Lo dejare alojado ahi para que cualquiera en un futuro que lo requiera pueda ver como funciona.

Código PHP:
Ver original
  1. <?
  2.  
  3. //archivos necesarios
  4. require_once 'config.php';
  5. require_once 'conexion.php';
  6.  
  7. // obtengo puntero de conexion con la db
  8. $dbConn = conectar();
  9.  
  10. // Contamos la cantidad de registros que hay
  11. $res = mysql_query("SELECT id FROM TuTabla");
  12. $total_registros = mysql_num_rows($res);
  13.  
  14. // Declaramos la cantidad de registros a mostrar por pagina
  15. $registros = 1;
  16.  
  17. // Declaramos la pagina seleccionada por el usuario
  18. $pagina = $_GET["pagina"];
  19.  
  20. // $inicio indica a partir de que registro se muestra la consulta
  21. if (empty ($pagina)) {
  22.      $inicio = 0;
  23.      $pagina=1;
  24. }
  25. else {
  26.     $inicio = ($pagina - 1) * $registros;
  27. }
  28.    
  29. // Traemos los resultados a mostrar por cada pagina seleccionada
  30. $arrayFrases = array();
  31. $resultados = mysql_query("SELECT * FROM TuTabla ORDER BY loquesea DESC LIMIT $inicio,$registros") or die (mysql_error()); 
  32. while ( $row = mysql_fetch_assoc ($resultados)) {
  33.     array_push( $arrayFrases,$row );
  34. }
  35.  
  36. // Calculamos el total de paginas a mostrar
  37. $total_paginas = ceil($total_registros / $registros);
  38.  
  39. /* El sistema esta programado para ver paginas de 10 en 10 de la siguiente manera:
  40. 1 2 3 4 5 6 7 8 9 10 y al pasar una pagina se vera 11 12 13 14 15 16 17 18 19 20 y asi
  41. sucesivamente hasta llegar al final de paginas encontradas. (cada uno obviamente puede
  42. modificarlo adaptandolo a sus necesidades). */
  43.        
  44.         // Calculamos $fin y luego $enlace_fin para despues saber el tamaño de enlaces a mostrar
  45.         $j=10;
  46.         for ($fin=1; $fin<$j ;$fin+=1){
  47.         for ($j=10; $j<$pagina; $j+=10)
  48.         {}}
  49.         $enlace_fin = $fin - $pagina;
  50.        
  51.         // Calculamos el boton para avanzar a la pagina siguiente
  52.         $j=10;
  53.         for ($sigpag=1; $sigpag<$j ;$sigpag+=10){
  54.         for ($j=10; $j<$pagina; $j+=10)
  55.         {}}
  56.        
  57.         // Calculamos el boton para retroceder a la pagina anterior
  58.         $j=21;
  59.         for ($antpag=0; $antpag<=$j-20;$antpag+=1){
  60.         for ($j=10; $j<$pagina; $j+=10)
  61.         {}}
  62.        
  63.         // Calculamos el numero en el cual nos paramos para empezar a paginar
  64.         $j=11;
  65.         for ($ini=0; $ini<=$j-10;$ini+=1){
  66.         for ($j=10; $j<$pagina; $j+=10)
  67.         {}}
  68.  
  69. ?>

Luego en el body iria esto:

Código PHP:
Ver original
  1. <div id="paginacion">
  2.  
  3.     <?
  4.              mysql_free_result($resultados);               
  5.     if($total_registros) {
  6.                
  7.         if($pagina>1) {?>
  8.         <div id="anterior"><? echo "<a href='index.php?pagina=".($pagina-1)."'>« Anterior</a> ";?></div><?
  9.         }
  10.         if($pagina>10) {?>
  11.         <div id="antpag"> <? echo " <a href='index.php?pagina=".($antpag)."'>«</a>";?> </div><?
  12.         }
  13.  
  14.                
  15.         for ($i=$ini; $i<=$enlace_fin+$pagina and $i<=$total_paginas; $i++){
  16.             if ($i == $pagina){?>
  17.                 <div id="noselect"><? echo "<b>".$i."</b> ";}
  18.             else {
  19.             ?> <div id="numero"> <? echo "<a href='index.php?pagina=$i'>$i</a> "; }?> </div>
  20.         <? } if($ini <= $total_paginas) {?>
  21.         <div id="sigpag"> <? echo " <a href='index.php?pagina=".($sigpag)."'>»</a>";?> </div><?
  22.         }
  23.         if($pagina < $total_paginas) {?>
  24.             <div id="siguiente"> <? echo " <a href='index.php?pagina=".($pagina+1)."'>Siguiente »</a>";?> </div><?
  25.         }
  26.        
  27.                
  28.     }
  29. ?>
  30. </div>


Archivo conexion:
Código PHP:
Ver original
  1. <?php
  2.      
  3. function conectar () {
  4.      
  5. $db_con = mysql_pconnect (DB_SERVER,DB_USER,DB_PASS);
  6. if (!$db_con) return false;
  7. if (!mysql_select_db (DB_NAME, $db_con)) return false;
  8. return $db_con;
  9.      }
  10.      
  11. ?>

Archivo config:
Código PHP:
Ver original
  1. <?php
  2.      
  3. // constantes de conexion de db
  4. define( 'DB_SERVER', 'tuserver' );
  5. define( 'DB_NAME', 'nombre_db');
  6. define( 'DB_USER', 'nombre_user');
  7. define( 'DB_PASS', 'tupassword');
  8.  
  9.      
  10. ?>

Última edición por maximilianojcelis; 24/01/2012 a las 13:34
  #2 (permalink)  
Antiguo 24/01/2012, 13:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 16 años
Puntos: 20
Respuesta: Sistema de Paginacion [APORTE]

Muy Buen Aporte!!!, Gracias!!!! ahora lo pondre en practica!!!
  #3 (permalink)  
Antiguo 24/01/2012, 14:41
Avatar de vicion  
Fecha de Ingreso: noviembre-2011
Mensajes: 79
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Sistema de Paginacion [APORTE]

no anda la web para ver como funciona!!
gracias por el aporte lo probare justo ando necesitando uno!!!
Saludos!
  #4 (permalink)  
Antiguo 25/01/2012, 06:13
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 126
Antigüedad: 14 años, 2 meses
Puntos: 11
Respuesta: Sistema de Paginacion [APORTE]

La web para ver el paginador funciona, solo que actualmente 000webhost esta revisando el sitio para verificar que no tenga contenido malicioso, como dice en su mensaje. Cuando terminen de revisar estará online de vuelta, no depende de mi.
  #5 (permalink)  
Antiguo 25/01/2012, 07:59
 
Fecha de Ingreso: julio-2010
Mensajes: 393
Antigüedad: 14 años, 4 meses
Puntos: 67
Respuesta: Sistema de Paginacion [APORTE]

Cita:
Iniciado por maximilianojcelis Ver Mensaje
...es que encontre muchos sistemas bastante parecidos, pero ninguno era eficiente a la hora de mostrar los enlaces...
Hola maximilianojcelis, no probaste kpaginate? lo escribí yo: paginación php
__________________
Páginas web de alta calidad y hechas a la medida.

Etiquetas: phppaging, sistema+de+paginacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 09:07.