Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/06/2012, 15:32
ComunidadGaming
 
Fecha de Ingreso: junio-2012
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Duda con paginador..

Cita:
Iniciado por Nemutagk Ver Mensaje
Te repito, tu código hace demasiado para lo que pretendes hacer, aparte, no muestras el código donde divides los items, tampoco indicas si es para paginar un resultado de una DB, etc...



Sinceramente dudo que te de mas dolor de cabeza que intentar hacer algo desde 0 con el nivel que tienes, pero bueno, eso no esta del todo mal querer hacerlo tu mismo...

Como no muestras todo el código implicado solo te podré dejar un ejemplo de como construir los links de navegación de tu paginación...

Código PHP:
Ver original
  1. //supondré que los resultados vienen en un array, ya sea de DB o de lo que fuere...
  2. $numTotalItems = count($items);
  3.  
  4. //numero de items mostrados por página...
  5. $numPerPage = 15;
  6.  
  7. //Obtenemos el numero total de páginas, como es una división probablemente obtengamos un
  8. //una fracción, por lo tanto hay que redondear el numero hacia arriba...
  9. $totalPages = ceil($numTotalItems / $numPerPage);
  10.  
  11. //verificamos en que página estamos
  12. $currentPage = (isset($_GET['page'])) ? $_GET['page'] : 1;
  13.  
  14. //verificamos si es la primera página o no
  15. if ($currentPage > 1) {
  16.      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($currentPage - 1).'">Anterior</a>';
  17. }
  18.  
  19. //recorremos las página existentes
  20. for($i=0; $i<=$totalPages; $i++) {
  21.      //verificamos si la página dentro del for es igual o no a la página actual
  22.      if ($i != $currentPage) {
  23.           //si no lo es imprimimos el link
  24.           echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a>';
  25.      }else {
  26.           //si es igual la destacamos como negrita y no agregamos el link
  27.           echo '<strong>'.$i.'</strong>';
  28.      }
  29. }
  30.  
  31. //vemos si la página actual es menor al total de páginas
  32. if ($currentPage < $totalPages) {
  33.      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($currentPage + 1).'">Siguiente</a>';
  34. }

Ahora, si obtienes muchas páginas y solo quieres mostrar las 5 anteriores, la página actual y las 5 siguientes podrías hacer algo así...

Código PHP:
Ver original
  1. //verificamos si es la primera página o no
  2. if ($currentPage > 1) {
  3.      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($currentPage - 1).'">Anterior</a>';
  4. }
  5.  
  6. $inicio = 1;
  7.  
  8. if ($currentPage > 5) {
  9.      $inicio = $currentPage - 5;
  10. }
  11.  
  12. $fin = $totalPages;
  13. $finTemp = $totalPages - $currentPage;
  14. if ($finTemp > 5) {
  15.      $fin = $currentPage + 5;
  16. }else {
  17.      $fin = $totalPages;
  18. }
  19.  
  20. for($i=$inicio; $i<=$fin; $i++) {
  21.     if ($i != $currentPage) {
  22.         echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> ';
  23.     }else {
  24.         echo '<strong>'.$i.'</strong> ';
  25.     }
  26. }
  27.  
  28. if ($currentPage < $totalPages) {
  29.      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($currentPage + 1).'">Siguiente</a>';
  30. }

Hola de nuevo.. tal vez esta info sea de utilidad..

Esto tengo en tops, ultimas, y tendencias.php que seria para paginar :
Código PHP:
Ver original
  1. <?
  2.  
  3.     $rsC = mysql_query("Select count(*) from fblike");
  4.  
  5.     $resultC = mysql_fetch_array($rsC);
  6.  
  7.     $count = $resultC[0];
  8.  
  9.     $hasta = 50;
  10.  
  11.     $pag =  $_GET['pag'];
  12.  
  13.     if (!$pag  || $pag <0) {
  14.  
  15.     $desde = 0;
  16.  
  17.     $pag=1;
  18.  
  19.     }
  20.  
  21.     else {
  22.  
  23.     $pagS = $pag - 1;
  24.  
  25.     $desde = $hasta * $pagS;
  26.  
  27.     }
  28.  
  29.  
  30.  
  31.     $x = mysql_query("select * from (select * from fblike order by id desc limit 0,14000) AS soisecoxd order by hits desc limit $desde,$hasta");
  32.  
  33.  
  34.  
  35.     $nr=0;
  36.  
  37.     while ($y=mysql_fetch_assoc($x)) {
  38.  
  39.         $id=$y['id'];
  40.  
  41.          $like=htmlspecialchars($y['like']);
  42.  
  43.         ?>

& Despues :
Código PHP:
Ver original
  1. <?
  2.  
  3.    
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.     }
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.     $link_totales = 10;
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.     paginar($count,$hasta,$pag,$link_totales,$extra_variables);
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.     ?>

Espero que sirva esta info para que entiendas un poquito más..

@unexes Gracias por la respuesta, lo voy a tener en cuenta.

Salu2