Paginação PHP
-
Use a cláusula
LIMIT
com a instruçãoSELECT
emSQL
para paginar as linhas em PHP -
Adicione o recurso de navegação
Previous
eNext
na paginação em PHP
Este artigo irá apresentar um método para realizar a paginação em PHP usando a cláusula LIMIT
com a instrução SELECT
em SQL
. Usaremos a cláusula LIMIT
para selecionar o número específico de linhas a partir de um índice específico para exibir como paginação.
Também demonstraremos outro método para adicionar o recurso de navegação Previous
e Next
na paginação PHP. Este método apenas adiciona o recurso adicional para navegar nas páginas correspondentes ao primeiro método.
Use a cláusula LIMIT
com a instrução SELECT
em SQL
para paginar as linhas em PHP
Podemos usar a cláusula LIMIT
com a instrução SELECT
para especificar os primeiros n resultados a serem exibidos em uma página. Podemos fornecer o número da página na tag anchor
como um método GET
para navegar pelas páginas. Neste método, definimos o número de linhas a serem exibidas por página e recuperamos todas as linhas do banco de dados para calcular o número total de páginas necessárias. Podemos usar o array $_GET
com a função isset()
para obter o número da página solicitado pelo usuário.
Por exemplo, crie uma variável $results_per_page
e armazene 2
nela. Use a função mysqli_num_rows()
para encontrar o número de linhas no banco de dados e armazenar na variável $number_of_results
. Use a função ceil()
para determinar o número total de páginas necessárias para exibir as linhas. Divida a variável $number_of_results
pela variável $results_per_page
dentro da função ceil()
. Use a variável superglobal $_GET
com a função isset()
para verificar se a variável page
foi definida. Se não foi definido, defina a variável page
para 1
. Se a variável foi definida, atribua o valor à variável page
. Subtraia a variável page
por 1
e multiplique-a pela variável $this_page_first_result
. Armazene a operação na variável $this_page_first_result
. Escreva uma instrução SQL
com a cláusula LIMIT
como SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page.
. Execute a consulta e exiba os resultados. No final, crie um for
loop para fazer um loop entre a variável page
e $number_of_page
. Dentro do loop, echo
a tag anchor
e escreve o valor do atributo href
como index.php?page'.$page
. Entre as tags anchor
, escreva a variável page
.
No exemplo abaixo, a tabela alpha
no banco de dados contém seis linhas. Depois de executar a paginação, duas linhas são exibidas por página. A função ceil()
determina o número total de páginas necessárias para mostrar as linhas. Inicialmente, a variável $page
não está definida, então a página começa na página 1. A variável $this_page_first_result
determina o número da página em que o usuário está atualmente. As variáveis $this_page_first_result
denota a primeira linha da página. A variável $results_per_page
denota o número de resultados por página. A seção de saída exibe a página index.php
. Quando clicado na página 2
, ele produz as próximas duas linhas do banco de dados.
Código de exemplo:
#php 7.x
<?php
$number_of_pages = ceil($number_of_results/$results_per_page);
if (!isset($_GET['page'])) {
$page = 1;
} else {
$page = $_GET['page'];
}
$this_page_first_result = ($page-1)*$results_per_page;
$sql='SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo $row['id'] . ' ' . $row['value']. '<br>';
}
for ($page=1;$page<=$number_of_pages;$page++) {
echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
?>
Resultado:
1 A
2 B
1 2 3
Adicione o recurso de navegação Previous
e Next
na paginação em PHP
Podemos adicionar alguns trechos de código adicionais ao exemplo de código no primeiro método para fornecer o recurso de navegação Previous
e Next
na paginação. Podemos aumentar e diminuir a variável $page
em 1 para apontar para a página anterior e a próxima. Podemos usar as variáveis incrementadas e decrementadas na tag anchor
para obter os recursos Next
e Previous
.
Por exemplo, crie duas variáveis, $prev
e $next
. Subtraia a variável $page
por um e atribua a operação à variável $prev
. Da mesma forma, adicione um à variável $page
e atribua-o à variável $next
. Faça eco de uma tag anchor
dizendo Previous
logo antes do loop for
dos números das páginas. Escreva o valor index.php?page=' . $prev .
no atributo href
da tag anchor
. Da mesma forma, faça outra tag anchor
para Next
usando a variável $next
como o valor de page
no atributo href
.
Na seção de saída abaixo, ele mostra a segunda página. Clicar em Previous
leva à primeira página e clicar em Next
, leva para a terceira página.
Código de exemplo:
# php 7.x
<?php
$prev = $page -1;
$next = $page +1;
echo ' <a href="index.php?page=' . $prev . '"> Previous </a> ';
for ($page=1;$page<=$number_of_pages;$page++) {
echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
echo ' <a href="index.php?page=' . $next . '"> Next </a> ';
?>
Resultado:
3 C
4 D
Previous 1 2 3 Next
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn