Como montar uma paginação no PHP e Mysql, paginando os resultados de uma consulta realizada no banco de dados Mysql utilizando um script de paginação simples, incluso no Post.
O exemplo a seguir poder ser utilizado em consultas realizados em outros bancos (ex: postgresql), basta você substituir as funções relacionadas ao Mysql pela às utilizadas no banco o qual você está utilizando.
Crie um arquivo “produto.php” com o seguinte código.
$sql = "SELECT count(id) FROM produto "; $result = $con->query($sql); $return = $result->fetch_row(); $rec_count = $return[0];
Repare que iremos utilizar a variável GET “página” para controlarmos a exibição das páginas.
Ex: dominio.com.br?pagina=2
if( isset($_GET{'pagina'} ) ) { $page = $_GET{'pagina'} - 1; $offset = $rec_limit * $page ; }else { $page = 0; $offset = 0; } $sql = "SELECT * FROM produto $busca LIMIT $offset, $rec_limit"; $result = $con->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { ?> <div class="produto"> <p><?php echo $row['nome'] ?></p> <p><?php echo $row['preco'] ?></p> </div> <?php } }
Além de montar a lista com as páginas/links, exibimos também a quantidade de registros e a página atual.
<p>Qtd. total de registros: <?php echo $rec_count ?></p><br/> <p>Pagina atual: <?php echo isset($_GET['pagina']) ? $_GET['pagina'] : "1" ?></p><br/> <p>Paginas: </p> <?php $qtd_paginas = (int) ($rec_count / $rec_limit) ; $qtd_paginas = ( ($qtd_paginas % $rec_limit ) > 0 ) ? $qtd_paginas + 1 : $qtd_paginas; for($i = 1; $i <= $qtd_paginas; $i++ ){ ?> <a href="produto.php?pagina=<?php echo $i ?>"><?php echo $i ?></a> <?php } ?>
No exemplo foi utilizado a tabela “produtos” com as colunas “id, nome e preço”, altere de acordo com a sua necessidade.
É importante que você faça a revisão do código, buscando realizar otimizações e adequações de acordo com o seu sistema e versão do PHP utilizada.
Script completo:
<?php $sql = "SELECT count(id) FROM produto "; $result = $con->query($sql); $return = $result->fetch_row(); $rec_count = $return[0]; if( isset($_GET{'pagina'} ) ) { $page = $_GET{'pagina'} - 1; $offset = $rec_limit * $page ; }else { $page = 0; $offset = 0; } $sql = "SELECT * FROM produto $busca LIMIT $offset, $rec_limit"; $result = $con->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { ?> <div class="produto"> <p><?php echo $row['nome'] ?></p> <p><?php echo $row['preco'] ?></p> </div> <?php } } ?> <p>Qtd. total de registros: <?php echo $rec_count ?></p><br/> <p>Pagina atual: <?php echo isset($_GET['pagina']) ? $_GET['pagina'] : "1" ?></p><br/> <p>Paginas: </p> <?php $qtd_paginas = (int) ($rec_count / $rec_limit) ; $qtd_paginas = ( ($qtd_paginas % $rec_limit ) > 0 ) ? $qtd_paginas + 1 : $qtd_paginas; for($i = 1; $i <= $qtd_paginas; $i++ ){ ?> <a href="produto.php?pagina=<?php echo $i ?>"><?php echo $i ?></a> <?php } ?>
Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…
Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…
Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…
Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…
Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…
Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…