Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma Paginação em php que funciona legal, só que quero limitar os links da paginação.
Ex: A paginação tá assim << 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.>>
Quero que fique parecido assim << 1.2.3.4.5...20 >>
Segue o Código da Paginação.
$limite = 10; // Limite de registros por pagina
if (!isset($_GET['pag'])) {
$pagina = 1;
$for_next = 0; $pagina = $_GET['pag'];
}
$inicio = ($pagina * $limite) - $limite;
$pag = $dbh->prepare("SELECT * FROM noticias");
$pag->execute();
$all_page = ceil($pag->rowCount()/$limite);
echo '<div class="pag" style="text-align: right">';
if ( ($pagina-1) > 0 ) {
echo '<button><a href="noticias.php?pag='.($pagina-1).'">'.'<<'."</a></button>";
}
for ( $i=1; $i <= $all_page;$i++ ) {
echo '<button><a href="noticias.php?&pag='.$i.'">'.$i.'</a></button>';
}
if ( $pagina < $all_page ) {
echo '<button><a href="noticias.php?pag='.($pagina+1).'">'.'>>'."</a></button>";
}
echo '</div>';
Desde já agradeço.
Estava com o mesmo problema, não conseguia limitar os links da paginação e consegui resolver meu problema dessa forma não é exatamente como você quer mas pode te ajudar.
Como está limitado até 10 basta substituir as variaveis passando os valores corretos para controlar de acordo com os dados a ser exibido.
<?php
// Numero de links a mostrar e total de paginas
// Que pagina estamos a ver?
} else {// Calcula o inicio e fim do ciclo
/* Define manualmente o inicio e fim do ciclo se
} else { /* Incrementa 1 valor ao inicio do ciclo se o numero de links for par, caso contrario iremos ter um link a mais */estivermos nas primeiras ou ultimas paginas */
if (!($pages_show%2)) {
// Define o link para a pagina anterior a actual
} else {//
// Define o link para a pagina a seguir a actual
} else {// Imprime a paginacao no ecra
a apresentação dos links ficou assim
Página 1:
<< Anterior | 1 2 3 4 5 | Próxima >>
Página 2:
<< Anterior | 1 2 3 4 5 | Próxima >>
Página 3:
<< Anterior | 1 2 3 4 5 | Próxima >>
Página 4:
<< Anterior | 2 3 4 5 6 | Próxima >>
Página 5:
<< Anterior | 3 4 5 6 7 | Próxima >>
Página 6:
<< Anterior | 4 5 6 7 8 | Próxima >>
Página 7:
<< Anterior | 5 6 7 8 9 | Próxima >>
Página 8:
<< Anterior | 6 7 8 9 10 | Próxima >>
Página 9:
<< Anterior | 6 7 8 9 10 | Próxima >>
Página 10:
<< Anterior | 6 7 8 9 10 | Próxima >>