Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Paginierung

PHP-Paginierung

WBOY
WBOYOriginal
2024-08-28 12:10:031134Durchsuche

Was ist Paginierung?

Paginierung bezieht sich in PHP auf den Prozess der Aufteilung einer großen Datenmenge in kleinere, besser verwaltbare Abschnitte, sogenannte „Seiten“. Es wird häufig in Webanwendungen verwendet, um eine begrenzte Anzahl von Datensätzen oder Ergebnissen pro Seite anzuzeigen, sodass Benutzer problemlos durch die Daten navigieren können.

Paginierung ist beim Umgang mit großen Datensätzen unerlässlich, da die Anzeige aller Datensätze auf einer einzigen Seite zu Leistungsproblemen und einer überfordernden Benutzeroberfläche führen kann. Durch die Implementierung der Paginierung können Sie das Benutzererlebnis verbessern und die Leistung Ihrer Anwendung optimieren.

PHP-Programm zur Paginierung

  • Erstellen Sie eine neue PHP-Datei an Ihrem Arbeitsort und speichern Sie sie unter Ihrem gewünschten Namen.

  • Hier verwenden wir die Studentdata-Tabelle mit 121 Datensätzen in der Localhost-Datenbank.

Beispiel

Hier ist ein Beispiel für die Implementierung der Paginierung in PHP zur Anzeige von 10 Datensätzen pro Seite mit Schülerdaten aus einer Datenbank.

<!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>

Ausgabe

PHP Pagination

Erklärung 

Der erste Teil des Codes stellt eine Datenbankverbindung unter Verwendung des bereitgestellten Servernamens, Benutzernamens, Passworts und Datenbanknamens her. Anschließend wird geprüft, ob die Verbindung erfolgreich war. Als nächstes wird die Anzahl der pro Seite anzuzeigenden Datensätze festgelegt und die aktuelle Seitenzahl anhand des URL-Parameters ermittelt. Es berechnet den Startdatensatzindex anhand der aktuellen Seite und des Datensatzwerts pro Seite. Der Code führt dann eine Datenbankabfrage aus, um die Schülerdaten mithilfe der LIMIT-Klausel abzurufen, um nur die relevanten Datensätze für die aktuelle Seite abzurufen. Es durchläuft das Abfrageergebnis und zeigt die Studentendaten in einem Rasterlayout an.

Der zweite Teil des Codes behandelt die Paginierung. Es führt eine weitere Datenbankabfrage durch, um die Gesamtzahl der Datensätze in der Tabelle „studentdata“ zu ermitteln. Die Gesamtzahl der Seiten wird berechnet, indem die Gesamtzahl der Datensätze durch den Wert der Datensätze pro Seite dividiert und aufgerundet wird. Anschließend generiert der Code mithilfe einer Schleife die Paginierungslinks. Wenn die Gesamtzahl der Seiten größer als 1 ist, wird für jede Seite ein Link generiert. Die aktuelle Seite wird mit einer „aktiven“ Klasse hervorgehoben. Abschließend wird die Datenbankverbindung geschlossen und der HTML-Code geschlossen. Insgesamt ruft dieser Code Schülerdaten mit Paginierung ab und zeigt sie an und stellt Navigationslinks zum Wechseln zwischen Seiten bereit.

Fazit

Der PHP-Code demonstriert eine Implementierung der Paginierung in PHP. Es nutzt die MySQL-Datenbank, um eine Teilmenge der Schülerdaten abzurufen und in einem Rasterlayout anzuzeigen. Der Code berechnet die Gesamtzahl der Seiten basierend auf der Anzahl der Datensätze pro Seite und generiert entsprechend Paginierungslinks. Benutzer können durch die Daten navigieren, indem sie auf die Seitenlinks klicken. Diese Implementierung verbessert das Benutzererlebnis, indem sie große Datensätze in überschaubare Abschnitte unterteilt, die Leistung verbessert und eine überfordernde Benutzeroberfläche verhindert. Es zeigt die grundlegenden Schritte zur Implementierung der Paginierung, einschließlich der Einrichtung einer Datenbankverbindung, des Abrufens von Daten mit Paginierung und der dynamischen Generierung von Paginierungslinks.

Das obige ist der detaillierte Inhalt vonPHP-Paginierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn