Ver Mensaje Individual
  #8 (permalink)  
Antiguo 07/01/2020, 09:36
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: poner puntos suspensivos en paginador php pdo

Parece que estás haciendo el ejercicio con menos de 20 páginas o estás usando la variable equivocada para los cálculos... o ambas!

Código PHP:
Ver original
  1. // Conviene tener la página actual en una variable
  2.     // Si no se especificó en URL, entonces es 1 por default
  3.     $page_current = (isset($_GET['page'])) ? (int) $_GET['page'] : 1;
  4.     // También hay que validar que esté dentro de los límites
  5.     if($page_current < 1) {
  6.          $page_current = 1;
  7.     }
  8.     if($page_current > $page) {
  9.         $page_current = $page;
  10.     }
  11.  
  12.     // Esta es la cantidad máxima de enlaces a mostrar
  13.     $max_links = 20;
  14.  
  15.     // Sigo suponiendo que en $page tienes el máximo de páginas
  16.     if($page <= $max_links) {
  17.           // Si tienes menos enlaces que los que "deseas" mostrar
  18.           $inicio = 1;
  19.           $fin = $page;
  20.     } else {
  21.               $inicio = $page_current - round($max_links / 2);
  22.               if($inicio < 1) {
  23.                     $inicio = 1;
  24.               }
  25.               $fin = $inicio + $max_links;
  26.               if($fin > $page) {
  27.                   $fin = $page; // Creo que en $page es donde tienes el máximo de páginas
  28.                   $inicio = $fin - $max_links;
  29.                   // Verificar si inicio es menor que uno???
  30.               }
  31.     }
  32.     // Es mejor dejar siempre el número de página intacto
  33.     // y calcular el inicio adecuado para los resultados (offset)
  34.    $starting = ($page_current * $record_by_page) - $record_by_page;
__________________
- León, Guanajuato
- GV-Foto