-1
I am setting up a simple pagination structure and until then it is working.
This structure has links called: Previous - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - Next
My question is how to create a display limit, example: I am on page 1, will have to display the links from 1 to 5 and if I click on link 5 appears from 2 to 6 if I click on 6 appear 3 to 7 and so on.
<?php
// Estrutura básica de paginação
$limit = 10; // Limite de registros por página
$cont = 1; // Contator
$qtdRegistros = 80; // Quantidade de registros no banco
$qtdPaginas = ceil(($qtdRegistros/100)*$limit); // Quantidades de páginas a ser exibida
// Verifica se está vázio, se estiver irá colocar o valor 1
if(empty($_GET['page'])){
$_GET['page']=$cont;
}
$backPage = $_GET['page']-1;
$advancePage = $_GET['page']+1;
// Verifica se está na primeiro página. Se estiver o botão anterior não é exibido
if($_GET['page'] !=1){
echo "<a href='?page=$backPage'>Anterior - </a>";
}
while ($cont <= $qtdPaginas) {
echo "<a href='?page=$cont'>$cont</a>";
$cont++;
}
// Verifica se está na última página. Se estiver o botão próximo não é exibido
if($_GET['page'] != $qtdPaginas){
echo "<a href='?page=$advancePage'> - Próximo </a>";
}
echo "</br>";
if(isset($_GET['page'])== $cont){
if($_GET['page'] <= $qtdPaginas){
$url=$_GET['page'];
echo "Página atual é:".$url."</br>";
}else{
echo "Página não encontrada";
}
}
// Explicação..
// ceil() -- Arredonda para cima -
// $qtdPaginas -- Pega a quantidade de registros(50) divide por 100 = 0,5 multiplica pelo limite (10) = 5, ou seja 5 páginas.
?>
The basic logic is to place the current page in the center of the range you want to show. If you are on page 10 and want to show 5 at a time, you show from 8 to 12 (that is, two before and two after). The account is simple. The tips (first and last pages) are exceptions.
– bfavaretto
Dude, I did it once with pure PHP and it was crazy. Then I saw it was a waste of time and I could use Datatables.
– Gato de Schrödinger
As I’m learning, I’m trying to do it under the nail, but I’m having a hard time putting together this logic.
– Gabriel Mariano Oliveira