Maison  >  Article  >  développement back-end  >  Comment implémenter la pagination en php

Comment implémenter la pagination en php

PHPz
PHPzoriginal
2023-04-23 10:21:561243parcourir

PHP est un langage de programmation côté serveur populaire largement utilisé dans le domaine du développement Web. La pagination est une exigence très courante dans le développement de sites Web. Il peut afficher une grande quantité de données dans des pages selon certaines règles, ce qui facilite la navigation des utilisateurs. Cet article explique comment implémenter la fonction de pagination en PHP.

  1. Obtenir les données de la base de données

En PHP, vous pouvez utiliser des bibliothèques d'extension telles que mysqli ou PDO pour vous connecter à la base de données. Nous devons d’abord obtenir toutes les données qui doivent être paginées à partir de la base de données. Grâce aux instructions SQL, nous pouvons utiliser la clause LIMIT pour obtenir une quantité spécifiée de données. Par exemple :

$per_page = 10; //每页显示的数据量
$page_num = $_GET['page'] ?? 1; //当前页码,默认为1
$start = ($page_num - 1) * $per_page; //起始位置

$sql = "SELECT * FROM products LIMIT $start, $per_page";
$result = mysqli_query($conn, $sql);
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);

Dans le code ci-dessus, nous utilisons la bibliothèque d'extension mysqli pour nous connecter à la base de données MySQL et utilisons la clause LIMIT pour obtenir la quantité de données spécifiée. Parmi eux, $per_page représente le nombre de données affichées sur chaque page, $page_num représente le numéro de page actuel et $start représente la position de départ de la requête de données. En calculant la position de départ et la quantité de données par page, nous pouvons construire une instruction SQL pour obtenir des données de la base de données.

  1. Afficher la barre de navigation de pagination

Après avoir obtenu les données, nous devons afficher la barre de navigation de pagination sur la page pour faciliter à l'utilisateur de tourner les pages. Voici un exemple de code :

$total_count = $conn->query("SELECT COUNT(*) FROM products")->fetch_row()[0]; //总记录数
$total_page = ceil($total_count / $per_page); //总页数
$start_page = max(1, $page_num - 5); //起始页码
$end_page = min($total_page, $start_page + 9); //结束页码

echo "<div class=&#39;pagination&#39;>";
if($page_num > 1) {
    echo "<a href=&#39;?page=".($page_num-1)."&#39;>上一页</a>";
}
if($start_page > 1) {
    echo "<a href=&#39;?page=1&#39;>1</a>";
    echo "<span>...</span>";
}
for($i=$start_page;$i<=$end_page;$i++) {
    echo "<a href=&#39;?page=$i&#39; ".($i==$page_num?&#39;class="active"&#39;:&#39;&#39;).">$i</a>";
}
if($total_page > $end_page) {
    echo "<span>...</span>";
    echo "<a href=&#39;?page=$total_page&#39;>$total_page</a>";
}
if($page_num < $total_page) {
    echo "<a href=&#39;?page=".($page_num+1)."&#39;>下一页</a>";
}
echo "</div>";

Dans le code ci-dessus, nous devons d'abord calculer le nombre total d'enregistrements et le nombre total de pages. Ensuite, calculez le numéro de page de début et le numéro de page de fin en fonction du numéro de page actuel, et placez-les dans la barre de navigation de pagination. Générez les numéros de page requis via une boucle et définissez les liens et les styles correspondants. Enfin, nous devons également déterminer si nous devons afficher des points de suspension et des liens vers les pages précédentes et suivantes.

  1. Optimisation des performances

Lors de la mise en œuvre de la fonction de pagination, nous devons également prendre en compte l'optimisation des performances. Si vous obtenez directement toutes les données de la base de données et effectuez un traitement de pagination, cela entraînera des problèmes tels qu'une consommation excessive de mémoire et une vitesse de requête lente. Par conséquent, nous devons utiliser certaines techniques pour améliorer l'efficacité des requêtes de pagination, telles que :

  • Utiliser des index : l'utilisation d'index dans les instructions SQL peut accélérer les requêtes.
  • Résultats de mise en cache : utilisez la technologie de mise en cache pour mettre en cache les résultats des requêtes et réduire le nombre de requêtes de base de données.
  • Optimiser les instructions SQL : utilisez des mots-clés tels que JOIN et WHERE pour optimiser les instructions SQL et réduire la taille des ensembles de résultats de requête.
  1. Bibliothèques tierces

En plus d'implémenter manuellement la fonction de pagination, nous pouvons également utiliser certaines bibliothèques tierces pour implémenter facilement la fonction de pagination. Par exemple, la classe Paginator est intégrée au framework Laravel, qui peut facilement implémenter la fonction de pagination. Pour une utilisation spécifique, veuillez vous référer à la documentation de Laravel.

Résumé

Cet article présente comment PHP implémente les fonctions de pagination, notamment l'obtention de données de base de données, l'affichage des barres de navigation de pagination, l'optimisation des performances, etc. Dans le développement réel, nous devons également sélectionner la solution optimale en fonction de scénarios spécifiques pour améliorer l'efficacité et les performances des requêtes de pagination.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn