Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/05/2013, 12:00
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: como hacer una paginacion en php

Hay infinidad de códigos en este foro y en internet de como hacer una paginación real, porque con tu código van apareciendo paginas conforme se avanza, que tal si quiero ir directamente a la ultima o penúltima página? con tu código no se podría porque tu sistema nunca sabe realmente cuantas páginas se van a generar, lo que le hace falta a tu código es saber el numero exacto de registros a mostrar y luego eso dividir entre el numero de items a mostrar por página, así obtienes el numero total de páginas reales con items que mostrar por lo tanto puedes poner links para ir desde la primer página hasta la ultima...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $pag = isset($_GET['pag']) ? $_GET['pag'] : 1;
  4.  
  5. $pdo = new PDO($driver,$user,$pass);
  6. $query = $pdo->prepare('SELECT COUNT(*) FROM mitabla');
  7. $query->execute();
  8.  
  9. $totalReg = $query->fetchColumn();
  10.  
  11. $itemsXPag = 5;
  12. $totalPag = ceil($totalReg / $itemsXPag);
  13. $itemsInicio = $itemsXPag * ($pag - 1);
  14.  
  15. $query = $pdo->prepare('SELECT * FROM mitabla LIMIT :inicio, :limite');
  16. $query->bindParam(':inicio',$itemsInicio);
  17. $query->bindParam(':limite',$itemsXPag);
  18. $query->execute();
  19.  
  20. $registros = $query->fetchAll();
  21.  
  22. //link anterior...
  23.  
  24. for($i=1; $i<=$totalPag; $i++) {
  25.      if ($pag == $i) {
  26.           echo '<strong>'.$i.'</strong>';
  27.      }else {
  28.           echo '<a href="'.$_SERVER['PHP_SELFT'].'?pag='.$i.'">'.$i.'</a>';
  29.      }
  30. }
  31.  
  32. //link siguiente...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)