Pagination PHP
-
Utilisez la clause
LIMIT
avec l’instructionSELECT
dansSQL
pour paginer les lignes en PHP -
Ajouter la fonctionnalité de navigation
Previous
etNext
dans la pagination en PHP
Cet article présentera une méthode pour effectuer la pagination en PHP en utilisant la clause LIMIT
avec l’instruction SELECT
en SQL
. Nous utiliserons la clause LIMIT
pour sélectionner le nombre spécifique de lignes à partir d’un index particulier à afficher en tant que pagination.
Nous allons également démontrer une autre méthode pour ajouter la fonctionnalité de navigation Previous
et Next
dans la pagination PHP. Cette méthode ajoute uniquement la fonctionnalité supplémentaire pour naviguer dans les pages correspondantes à la première méthode.
Utilisez la clause LIMIT
avec l’instruction SELECT
dans SQL
pour paginer les lignes en PHP
Nous pouvons utiliser la clause LIMIT
avec l’instruction SELECT
pour spécifier les n premiers résultats à afficher sur une page. Nous pouvons fournir le numéro de page dans la balise anchor
en tant que méthode GET
pour parcourir les pages. Dans cette méthode, nous définissons le nombre de lignes à afficher par page et récupérons toutes les lignes de la base de données pour calculer le nombre total de pages nécessaires. On peut utiliser le tableau $_GET
avec la fonction isset()
pour obtenir le numéro de page demandé par l’utilisateur.
Par exemple, créez une variable $results_per_page
et stockez 2
dedans. Utilisez la fonction mysqli_num_rows()
pour trouver le nombre de lignes dans la base de données et stocker dans la variable $number_of_results
. Utilisez la fonction ceil()
pour déterminer le nombre total de pages nécessaires pour afficher les lignes. Divisez la variable $number_of_results
par la variable $results_per_page
à l’intérieur de la fonction ceil()
. Utilisez la variable superglobale $_GET
avec la fonction isset()
pour vérifier si la variable page
a été définie. S’il n’a pas été défini, définissez la variable $page
sur 1
. Si la variable a été définie, affectez la valeur à la variable $page
. Soustrayez la variable page
par 1
et multipliez-la par la variable $this_page_first_result
. Stockez l’opération dans la variable $this_page_first_result
. Écrivez une instruction SQL
avec la clause LIMIT
sous la forme SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page.
Exécutez la requête et affichez les résultats. A la fin, créez une boucle for
pour boucler entre la variable page
et le $number_of_page
. A l’intérieur de la boucle, faites écho
à la balise anchor
et écrivez la valeur de l’attribut href
comme index.php?page'.$page
. Entre les balises anchor
écrivez la variable page
.
Dans l’exemple ci-dessous, la table alpha
de la base de données contient six lignes. Après avoir effectué la pagination, deux lignes sont affichées par page. La fonction ceil()
détermine le nombre total de pages nécessaires pour afficher les lignes. Initialement, la variable $page
n’est pas définie, la page commence donc à partir de la page 1. La variable $this_page_first_result
détermine le numéro de la page sur laquelle se trouve actuellement l’utilisateur. La variable $this_page_first_result
désigne la première ligne de la page. La variable $results_per_page
désigne le nombre de résultats par page. La section de sortie affiche la page index.php
. Lorsque vous cliquez sur la page 2
, il sort les deux lignes suivantes de la base de données.
Exemple de code :
#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> ';
}
?>
Production:
1 A
2 B
1 2 3
Ajouter la fonctionnalité de navigation Previous
et Next
dans la pagination en PHP
Nous pouvons ajouter des extraits de code supplémentaires à l’exemple de code de la première méthode pour fournir la fonctionnalité de navigation Previous
et Next
dans la pagination. On peut incrémenter et décrémenter la variable $page
de 1 pour pointer vers la page précédente et suivante. Nous pouvons utiliser les variables incrémentées et décrémentées dans la balise anchor
pour obtenir les fonctionnalités Next
et Previous
.
Par exemple, créez deux variables, $prev
et $next
. Soustraire la variable $page
par un et affecter l’opération à la variable $prev
. De même, ajoutez-en un à la variable $page
et affectez-le à la variable $next
. Faites écho à une balise anchor
indiquant Previous
juste avant la boucle for
des numéros de page. Écrivez la valeur index.php?page=' . $prev .
dans l’attribut href
de la balise anchor
. De la même manière, créez une autre balise anchor
pour $next
en utilisant la variable $next
comme valeur de $page
dans l’attribut href
.
Dans la section de sortie ci-dessous, il montre la deuxième page. En cliquant sur Previous
vous accédez à la première page et en cliquant sur Next
, vous accédez à la troisième page.
Exemple de code :
# 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> ';
?>
Production:
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