Maison  >  Article  >  développement back-end  >  Pagination PHP

Pagination PHP

WBOY
WBOYoriginal
2024-08-28 12:10:031134parcourir

Qu'est-ce que la pagination ?

La pagination en PHP fait référence au processus de division d'un grand ensemble de données en sections plus petites et plus gérables appelées « pages ». Il est couramment utilisé dans les applications Web pour afficher un nombre limité d'enregistrements ou de résultats par page, permettant ainsi aux utilisateurs de naviguer facilement dans les données.

La pagination est essentielle lorsqu'il s'agit de grands ensembles de données, car l'affichage de tous les enregistrements sur une seule page peut entraîner des problèmes de performances et une interface utilisateur écrasante. En implémentant la pagination, vous pouvez améliorer l'expérience utilisateur et optimiser les performances de votre application.

Programme PHP à pagination

  • Créez un nouveau fichier PHP sur votre emplacement de travail et enregistrez-le sous le nom souhaité.

  • Ici, nous utilisons la table studentdata avec 121 enregistrements dans la base de données localhost.

Exemple

Voici un exemple d'implémentation de la pagination en PHP pour afficher 10 enregistrements pour chaque page de données sur les étudiants à partir d'une base de données.

<!DOCTYPE html>
<html>
<head>
   <style>
     /* Grid styles */
     .grid-container {
       display: grid;
       grid-template-columns: repeat(3, 1fr);
       grid-gap: 10px;
       margin-bottom: 20px;
     }

     .grid-item {
       background-color: #f2f2f2;
       padding: 10px;
       text-align: center;
     }

     /* Table styles */
     table {
       border-collapse: collapse;
       width: 100%;
     }

     th, td {
       padding: 8px;
       text-align: left;
       border-bottom: 1px solid #ddd;
     }

     th {
       background-color: #4CAF50;
       color: white;
     }

     /* Pagination styles */
     .pagination {
       display: inline-block;
     }

     .pagination a {
       color: black;
       float: left;
       padding: 8px 16px;
       text-decoration: none;
       border: 1px solid #ddd;
     }

     .pagination a.active {
       background-color: #4CAF50;
       color: white;
       border: 1px solid #4CAF50;
     }

     .pagination a:hover:not(.active) {
       background-color: #ddd;
     }
   </style>
</head>
<body>
   <?php
   // Database connection details
   $servername = "localhost";
   $username = "root";
   $password = "";
   $dbname = "assignments";

   // Create connection
   $conn = new mysqli($servername, $username, $password, $dbname);

   // Check connection
   if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
   }

   // Number of records per page
   $recordsPerPage = 10;

   // Current page number
   if (isset($_GET['page'])) {
     $currentPage = $_GET['page'];
   } else {
     $currentPage = 1;
   }

   // Calculate the starting record index
   $startFrom = ($currentPage - 1) * $recordsPerPage;

   // Fetch student data with pagination
   $sql = "SELECT * FROM studentdata LIMIT $startFrom, $recordsPerPage";
   $result = $conn->query($sql);

   if ($result->num_rows > 0) {
     // Display student data
     echo "<div class='grid-container'>";
     echo "<div class='grid-item'><strong>ID</strong><
/div>";
     echo "<div class='grid-item'><strong>Name</strong><
/div>";
     echo "<div class='grid-item'><strong>Age</strong><
/div>";

     while ($row = $result->fetch_assoc()) {
       echo "<div class='grid-item'>" . $row["id"] . "</div>";
       echo "<div class='grid-item'>" . $row["name"] . "</div>";
       echo "<div class='grid-item'>" . $row["age"] . "</div>";
     }

     echo "</div>";
   } else {
     echo "No records found.";
   }

   // Pagination links
   $sql = "SELECT COUNT(*) AS total FROM studentdata";
   $result = $conn->query($sql);
   $row = $result->fetch_assoc();
   $totalRecords = $row["total"];
   $totalPages = ceil($totalRecords / $recordsPerPage);

   echo "<div class='pagination'>";

   if ($totalPages > 1) {
     for ($i = 1; $i <= $totalPages; $i++) {
       if ($i == $currentPage) {
         echo "<a class='active' href='?page=$i'>$i</a> ";
       } else {
         echo "<a href='?page=$i'>$i</a> ";
       }
     }
   }

   echo "</div>";

   // Close the connection
   $conn->close();
   ?>
</body>
</html>

Sortie

PHP Pagination

Explication 

La première partie du code établit une connexion à la base de données en utilisant le nom du serveur, le nom d'utilisateur, le mot de passe et le nom de la base de données fournis. Il vérifie ensuite si la connexion a réussi. Ensuite, il définit le nombre d'enregistrements à afficher par page et détermine le numéro de page actuel en fonction du paramètre URL. Il calcule l'index des enregistrements de départ en utilisant la page actuelle et la valeur des enregistrements par page. Le code exécute ensuite une requête de base de données pour récupérer les données des étudiants à l'aide de la clause LIMIT afin de récupérer uniquement les enregistrements pertinents pour la page en cours. Il parcourt le résultat de la requête et affiche les données des étudiants dans une disposition en grille.

La deuxième partie du code gère la pagination. Il effectue une autre requête de base de données pour déterminer le nombre total d'enregistrements dans la table « studentdata ». Il calcule le nombre total de pages en divisant le nombre total d'enregistrements par la valeur des enregistrements par page et en arrondissant. Le code génère ensuite les liens de pagination à l'aide d'une boucle. Si le nombre total de pages est supérieur à 1, il génère un lien pour chaque page. La page actuelle est mise en évidence avec une classe "active". Enfin, la connexion à la base de données est fermée et le code HTML est fermé. Dans l'ensemble, ce code récupère et affiche les données des étudiants avec pagination et fournit des liens de navigation pour basculer entre les pages.

Conclusion

Le code PHP démontre une implémentation de la pagination en PHP. Il utilise la base de données MySQL pour récupérer un sous-ensemble de données sur les étudiants et l'afficher sous forme de grille. Le code calcule le nombre total de pages en fonction du nombre d'enregistrements par page et génère des liens de pagination en conséquence. Les utilisateurs peuvent naviguer dans les données en cliquant sur les liens des pages. Cette implémentation améliore l'expérience utilisateur en divisant les grands ensembles de données en sections gérables, améliorant ainsi les performances et évitant une interface utilisateur trop chargée. Il présente les étapes de base impliquées dans la mise en œuvre de la pagination, notamment l'établissement d'une connexion à une base de données, la récupération de données avec la pagination et la génération dynamique de liens 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