0

Limitar número de páginas em paginação

criado por Webster Moitinho em 22/02/2021 7:28am
Estou tentando fazer um script para paginação mas a minha codificação exibe um número infinito de páginas (Anterior | 1 | 2 | 3 | 4 | 5 | 6 | 7, etc) e eu queria limitar esse número à apenas três (Primeira | 1 | 2 | 3 | Última), e conforme fosse carregando as demais páginas iria incrementando esses três números ( ao clicar na página 3 por exemplo apareceria Primeira | 3 | 4 | 5 | Última). Para estilização estou usando o Bootstrap4. Meu código está assim:

<?php

$itens_por_pagina = 5; // Quantidade de itens por página
if(isset($_GET['pagina'])){ $pagina = intval($_GET['pagina']); } else { $pagina = "0"; }; // Pega a página atual


$sql = "SELECT COUNT(*) as t
FROM tabela";
$prepara = $PDO->prepare($sql);
$prepara->execute();
$row = $prepara->fetchAll(PDO::FETCH_ASSOC);
foreach ($row as $key => $linha) {
$num_total = $linha["t"];
}

$num_paginas = ceil($num_total/$itens_por_pagina);
if($num_paginas >0){

$sql = "SELECT
tabela.campo1,
tabela.campo2, etc...
FROM tabela
LIMIT $pagina, $itens_por_pagina";
$res = $PDO->query( $sql );
$row = $res->fetchAll(PDO::FETCH_ASSOC);
foreach ($row as $key => $linha) {
$campo = $linha["campo"];
echo $campo; etc...
}

}

?>

<nav aria-label="Navegação de página exemplo">
<ul class="pagination">
<li class="page-item">
<a class="page-link" href="restrito.php?id=acoes&pagina=0" style="background-color: orange; color: #ffffff;">Primeira</a>

<?php
for($i=0;$i<$num_paginas;$i++){
$estilo = "";
if($pagina == $i)
$estilo = "class=\"active\""; // classe do Bootstrap para páginas ativas
?>

<li <?php echo $estilo; ?> class="page-item">
<a class="page-link" href="restrito.php?id=acoes&pagina=<?php echo $i; ?>">
<?php echo $i+1 ?>
</a>


<?php
}
?>

<li class="page-item">
<a class="page-link" href="index.php?pagina=<?php echo $num_paginas-1; ?>" style="background-color: orange; color: #ffffff;">
Última
</a>


</nav>

Lista de Respostas:

Nenhuma resposta foi publicada ainda.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)