logo

PHP-Paginierung

PHP wird hauptsächlich zum Speichern und Anzeigen von Daten aus einer Datenbank verwendet. Die Paginierung kann mit Ajax erfolgen, hier erfolgt dies jedoch mit Nicht-Ajax. In diesem Tutorial lernen wir das Paginierung in PHP mit MySQL . Lassen Sie uns anhand eines Beispiels einen kurzen Überblick über die Paginierung geben:

Es ist möglich, dass eine SQL SELECT-Abfrage Millionen von Datensätzen zurückgibt. Es ist keine gute Idee, alle Datensätze auf einer einzigen Seite anzuzeigen. Bei einer großen Liste von Datensätzen auf einer einzelnen Seite kann das Laden der Seite sehr lange dauern und auch Zeit für die Suche nach bestimmten Daten in Anspruch nehmen. Dies kann zu Verwirrung im Kopf des Benutzers führen. Teilen Sie diese Datensätze daher je nach Benutzeranforderung auf mehrere Seiten auf.

Was können wir also tun, um diese große Anzahl von Datensätzen auf die Anzahl der Seiten zu verteilen? Die Methode zum Verteilen einer einzelnen Liste auf mehrere Seiten wird als bezeichnet Seitennummerierung . Unter Paging versteht man die Anzeige Ihres Abfrageergebnisses auf mehreren Seiten statt auf einer einzelnen Seite.

Was ist Paginierung?

Bei der Paginierung handelt es sich um eine Möglichkeit, die Daten auf mehreren Seiten anzuzeigen, anstatt sie auf einer einzigen Seite zusammenzufassen. Durch die Paginierung können die Datensätze auf mehrere Seiten aufgeteilt werden, wodurch die Daten besser lesbar und verständlich werden.

Paginierung ist eine häufige Aufgabe für PHP-Entwickler. MySQL hilft dem Entwickler beim Erstellen einer Paginierung GRENZE -Klausel, die zwei Argumente akzeptiert. Das erste Argument als OFFSET und das zweite Argument ist Anzahl der Datensätze das wird aus der Datenbank zurückkehren.

js laden

Schauen wir uns einige Vor- und Nachteile der Verwendung des Paginierungskonzepts in PHP an:

Vorteile der Paginierung

  • Paginierung ist bei Großprojekten sehr nützlich, da sie das Webwork professioneller macht. Das ist nicht nur professioneller, sondern sorgt auch dafür, dass die Webseite viel schneller, präziser und effizienter arbeitet.
  • Mit Hilfe der Paginierung können wir die Ladezeit einer Seite verkürzen, indem wir die Daten auf verschiedene Seiten aufteilen. Es erspart uns das gleichzeitige Laden vieler Informationen.
    Zum Beispiel - Bei einer Webseite mit 1000 Bildern dauert das Laden der Bilder länger als bei den 50 Bildern auf jeder Webseite.
    Das bedeutet, dass Tausende von Bildern Tausende von HTTP-Anfragen benötigen, was dazu führen würde, dass die Seite nicht mehr reagiert. Dieses Problem wird gelöst, indem die Datenmenge mithilfe der Paginierung mithilfe der LIMIT-Klausel begrenzt wird.
  • Die Verwendung von Paginierung verbessert das Benutzererlebnis, die Werbeeinnahmen und verkürzt die Ladezeit der Seite.

Nachteile der Paginierung

Zwar bietet die Paginierung einige große Vorteile, doch viele Entwickler vermeiden es, sie zu verwenden. Neben einigen großen Vorteilen gibt es auch einige Nachteile der Paginierung:

  • Die Paginierung selbst stellt in PHP einen großen Overhead dar, was einer der Nachteile der Paginierung ist. Dies stellt einen völligen Mehraufwand dar, da es sich um eine externe Funktion handelt, die auf Kosten von überflüssigem Markup, Stil und Logik implementiert werden kann. Bei einem kleinen Datensatz wird die Paginierung oft ignoriert.
  • Die Paginierung kann zu einem niedrigen Seitenrang in Suchmaschinen führen, da eine Seite, die sich nicht auf der Startseite befindet und mehrere Klicks erfordert, normalerweise keinen hohen Seitenrang erhält.
  • Es begrenzt auch die Anzahl der Links, Social Shares, die Gesamtzahl der auf der Webseite sichtbaren Ergebnisse und den Ankertext, den eine Seite erhält, wenn die Informationen auf mehrere Seiten aufgeteilt werden.
Sie können die Verwendung der Paginierungstechnik vermeiden, indem Sie die Struktur Ihrer Navigationseinrichtung ändern.

Implementierung der Paginierung mit PHP und MySQL

Um die Paginierung zu implementieren, benötigen wir einen großen Datensatz, um die Paginierung darauf anzuwenden. Daher müssen wir zunächst eine Datenbank und eine Tabelle erstellen. Geben Sie anschließend die Datensätze in der Tabelle ein und beginnen Sie mit dem Codieren, um eine Paginierung zu erstellen. Damit die aus der Datenbank abgerufenen Daten auf mehrere Seiten aufgeteilt werden können.

Hier stellen wir zwei Beispiele für Paginierung vor. Das erste Beispiel ist ein einfaches und grundlegendes Beispiel für die Paginierungserstellung ohne CSS, während wir im zweiten Beispiel die Paginierung auf attraktive Weise mithilfe von CSS und Bootstrap erstellen werden. Sie können die Ausgabe für beide sehen. Im Folgenden finden Sie die Schritte zum Erstellen einer Paginierung.

Einfache Schritte zum Erstellen einer Paginierung –

Wann wurde die Schule erfunden?
  1. Erstellen Sie eine Datenbank und eine Tabelle. Geben Sie eine Liste der Datensätze in die Tabelle ein.
  2. Verbinden Sie sich mit der MySQL-Datenbank.
  3. Erstellen Sie den Paginierungslink, um die Daten auf mehrere Seiten aufzuteilen und sie am Ende der Tabelle hinzuzufügen.
  4. Rufen Sie Daten aus der Datenbank ab und zeigen Sie sie auf mehreren Seiten an.

Befolgen Sie die folgenden Schritte nacheinander und erstellen Sie eine einfache Paginierung.

Beispiel 1

Der folgende Code ist ein einfaches Beispiel für die Paginierung, die in PHP mit Hilfe der MySQL-Datenbank durchgeführt wird. Es teilt die aus der Datenbank abgerufenen Daten auf mehrere Seiten auf. In diesem Beispiel erstellen wir die Paginierung für Alphabete, die auf mehreren Seiten angezeigt werden sollen.

Datenbankerstellung

Erstellen Sie zunächst eine Datenbank mit dem Namen „by“. Seitennummerierung wie wir es erstellt und eine Tabelle darin benannt haben Alphabet . Attribut nach Namen erstellen Ausweis Und Alphabet , und geben Sie die Daten in der Tabelle an.

PHP-Paginierung

Datenbankkonnektivität

Das Verbinden der PHP-Datei mit der Datenbank ist eine erforderliche Aufgabe. Damit Sie die in der Datenbank gespeicherten Daten auf der Webseite anzeigen können. Verbinden Sie daher die Datenbank in Ihrer PHP-Datei, um Daten auf der Webseite anzuzeigen.

Sie können Datenbankkonnektivitätscode in derselben Datei schreiben, ihn aber auch separat in einer anderen Datei speichern und in Ihre erforderliche PHP-Datei einbinden. Code für Datenbankverbindung-

 $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } 

In diesem Tutorial verwenden wir mysqli Verlängerung. Daher werden alle Abfragen im MySQL-Format geschrieben.

Ermitteln Sie die aktuelle Seitenzahl

Der folgende Code bestimmt die Seitennummer, die der Benutzer gerade besucht. Falls es nicht vorhanden ist, wird die Seitenzahl standardmäßig auf 1 gesetzt.

char tostring java
 if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; } 

Formel für die Paginierung

Für die Paginierung müssen Sie die maximale Anzahl der Datensätze festlegen, die pro Seite angezeigt werden sollen. Hier legen wir die Grenze für das Ergebnis pro Seite auf 10 fest, sodass es auf jeder Seite wie unten angegeben angezeigt wird:

Seite 1 - A bis J (1-10)

Seite 2 - K bis T (11-20)

Seite 3 - U bis Z (21-26)

 $results_per_page = 10; $page_first_result = ($page-1) * $results_per_page; 

Ermitteln Sie die Gesamtzahl der Seiten

 $query = 'select *from alphabet'; $result = mysqli_query($conn, $query); $number_of_result = mysqli_num_rows($result); //determine the total number of pages available $number_of_page = ceil ($number_of_result / $results_per_page); 

Daten abrufen und auf der Webseite anzeigen

Der folgende Code wird verwendet, um die Daten aus der Datenbank abzurufen und auf den entsprechend unterteilten Webseiten anzuzeigen.

 $query = &apos;SELECT *FROM alphabet LIMIT &apos; . $page_first_result . &apos;,&apos; . $results_per_page; $result = mysqli_query($conn, $query); //display the retrieved result on the webpage while ($row = mysqli_fetch_array($result)) { echo $row[&apos;id&apos;] . &apos; &apos; . $row[&apos;alphabet&apos;] . &apos;<br>&apos;; } 

Zeigen Sie den Link der Seiten als URL an

Bei Verwendung dieses Codes ändert sich die URL der Webseite für jede Seite.

 for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>&apos; . $page . &apos;  &apos;; </=>

Endgültiger Code

Fügen Sie nun alle Codes in einer einzigen Datei zusammen, um die Paginierung durchzuführen.

Datei: Index2.php

 Pagination <?php //database connection $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } //define total number of results you want per page $results_per_page = 10; //find the total number of results stored in the database $query = 'select *from alphabet'; $result = mysqli_query($conn, $query); $number_of_result = mysqli_num_rows($result); //determine the total number of pages available $number_of_page = ceil ($number_of_result / $results_per_page); //determine which page number visitor is currently on if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; } //determine the sql LIMIT starting number for the results on the displaying page $page_first_result = ($page-1) * $results_per_page; //retrieve the selected results from database $query = 'SELECT *FROM alphabet LIMIT ' . $page_first_result . ',' . $results_per_page; $result = mysqli_query($conn, $query); //display the retrieved result on the webpage while ($row = mysqli_fetch_array($result)) { echo $row['id'] . ' ' . $row['alphabet'] . '</br>&apos;; } //display the link of the pages in URL for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>&apos; . $page . &apos;  &apos;; } ?&gt; </=>

Ausgabe:

Sehen Sie sich die folgende Ausgabe für das obige Paginierungsbeispiel an:

PHP-Paginierung

Beispiel 2

Das folgende Beispiel ist ein weiteres Beispiel für die Paginierung, bei der wir CSS zusammen mit HTML verwendet haben, um die Webseitenansicht attraktiver zu gestalten. CSS macht die Webseite kreativer und attraktiver. Andererseits speichert MySQL die Daten in der Datenbank. So können Sie die Paginierung viel besser lernen.

Wir haben den gesamten Code in einer einzigen Datei geschrieben, mit Ausnahme der Datenbankkonnektivität. Daher erstellen wir zwei Dateien, nämlich „connection.php“ und „index1.php“. Speichern Sie beide Dateien unter .php Verlängerung. Im folgenden Beispiel erfahren Sie, wie Sie die Paginierung kreativer und attraktiver gestalten können.

    PHP:Erstellt für DatenbankkonnektivitätPHP:Für die Paginierung erstellt

Datei: Verbindung.php

 

Datei: index1.php

Sortieralgorithmus für Einfügungen
 Pagination table { border-collapse: collapse; } .inline{ display: inline-block; float: right; margin: 20px 0px; } input, button{ height: 34px; } .pagination { display: inline-block; } .pagination a { font-weight:bold; font-size:18px; color: black; float: left; padding: 8px 16px; text-decoration: none; border:1px solid black; } .pagination a.active { background-color: pink; } .pagination a:hover:not(.active) { background-color: skyblue; } <?php // Import the file where we defined the connection to Database. require_once 'connection.php'; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page=1; } $start_from = ($page-1) * $per_page_record; $query = 'SELECT * FROM student LIMIT $start_from, $per_page_record'; $rs_result = mysqli_query ($conn, $query); ?> <br> <p>This page demonstrates the basic Pagination using PHP and MySQL. </p> <table class="table"> <tr> <th>ID</th> <th>Name</th> <th>College</th> <th>Score</th> </tr> <tbody> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table> <?php $query = 'SELECT COUNT(*) FROM student'; $rs_result = mysqli_query($conn, $query); $row = mysqli_fetch_row($rs_result); $total_records = $row[0]; echo '</br>&apos;; // Number of pages required. $total_pages = ceil($total_records / $per_page_record); $pagLink = &apos;&apos;; if($page&gt;=2){ echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active' href="index1.php?page=" .$i.''>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo ' next '; } ?> <input id="page" type="number" min="1" max placeholder required> Go function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p> <strong>Output:</strong> </p> <p>See the below output for above pagination example -</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-3.webp" alt="PHP Pagination"> <p>Note that code written inside the tag is used for styling and to give an attractive look to the table and pagination present inside the webpage. We also used bootstrap for this.</p> <h3>Explanation of code</h3> <p>Now, we will explain the code used for creating pagination.</p> <h3>Database creation</h3> <p>First of all, create a database named by <strong>pagination</strong> as we created and a table inside it named <strong>student</strong> . Create attribute by name <strong>Rank, Name, College,</strong> and <strong>Score</strong> , and provide at least 25 records in the table.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-4.webp" alt="PHP Pagination"> <h3>Database Connectivity</h3> <p>Connecting the PHP file to the database is a required task. In this tutorial, we are using <strong>mysqli</strong> extension. So, all the queries are written according to mysqli format.</p> <p>Database connectivity code can be written in the same file or you can also keep it separate into another file and include it to your required PHP file. Code for database connection-</p> <pre> $conn = mysqli_connect(&apos;localhost&apos;, &apos;root&apos;, &apos;&apos;); if (! $conn) { die(&apos;Connection failed&apos; . mysqli_connect_error()); } else { mysqli_select_db($conn, &apos;pagination&apos;); } </pre> <h3>Fetch data and display on webpage</h3> <p>As we have created dataset, now we need to fetch and display it to various webpages. The below code is used to retrieve the data from database and display on the webpages that are divided accordingly.</p> <h3>Fetch data</h3> <p>After establishing the database connection in &apos;connection.php&apos; file, we just need to import it into our code using require_once keyword. We will explicitly define the number of records per page to show.</p> <pre> require_once &apos;connection.php&apos;; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET[&apos;page&apos;])) { $page = $_GET[&apos;page&apos;]; } else { $page=1; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = &apos;SELECT * FROM student LIMIT $start_from, $per_page_record&apos;; $rs_result = mysqli_query ($conn, $query); </pre> <h3>Display data</h3> <p>This section is very simple. In this section, we iterate the loop over the records that we fetched and display each record stored in columns of the table.</p> <pre> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </pre> <h3>Pagination Link creation</h3> <p>Now the most important code is pagination link creation. So, we will create the Previous, Next, and numeric links for pagination and add them to bottom of the table.</p> <pre> if($page&gt;=2) { echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active' href="index1.php?page=" .$i.''>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo ' next '; } < pre> <p>Without using CSS, the pagination will be created same as the screenshot below, which is similar to the example 1.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-5.webp" alt="PHP Pagination"> <p>After including CSS code into the index1.php file, the pagination will be looked like the screenshot below. In example 1, we have created simple pagination that was logically correct, but visually it is not so good. </p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-6.webp" alt="PHP Pagination"> <h3>Code for Random Moment</h3> <p>In case when the number of pages is too much, this code helps us for random moment. By entering the page number in the input field, a user can directly move to that page. This code is written in JavaScript.</p> <pre> function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p>Apart from all these codes, we have also included bootstrap into index1.php to make the table view good. This code is written inside the tag.</p> <pre> </pre> <hr></1)?1:page));></pre></$total_pages){></=$total_pages;></pre></1)?1:page));></$total_pages){></=$total_pages;>

Daten abrufen und auf der Webseite anzeigen

Da wir einen Datensatz erstellt haben, müssen wir ihn nun abrufen und auf verschiedenen Webseiten anzeigen. Der folgende Code wird verwendet, um die Daten aus der Datenbank abzurufen und auf den entsprechend unterteilten Webseiten anzuzeigen.

Daten abrufen

Nachdem wir die Datenbankverbindung in der Datei „connection.php“ hergestellt haben, müssen wir sie nur noch mit dem Schlüsselwort require_once in unseren Code importieren. Wir werden explizit die Anzahl der anzuzeigenden Datensätze pro Seite definieren.

 require_once &apos;connection.php&apos;; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET[&apos;page&apos;])) { $page = $_GET[&apos;page&apos;]; } else { $page=1; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = &apos;SELECT * FROM student LIMIT $start_from, $per_page_record&apos;; $rs_result = mysqli_query ($conn, $query); 

Anzeigedaten

Dieser Abschnitt ist sehr einfach. In diesem Abschnitt wiederholen wir die Schleife über die Datensätze, die wir abgerufen haben, und zeigen jeden Datensatz an, der in den Spalten der Tabelle gespeichert ist.

 <tr> <td></td> <td></td> <td></td> <td></td> </tr> 

Erstellung von Paginierungslinks

Der wichtigste Code ist nun die Erstellung von Paginierungslinks. Daher erstellen wir die Links „Zurück“, „Weiter“ und „Numerisch“ für die Paginierung und fügen sie am Ende der Tabelle hinzu.

 if($page&gt;=2) { echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active\' href="index1.php?page=" .$i.\'\'>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo \' next \'; } < pre> <p>Without using CSS, the pagination will be created same as the screenshot below, which is similar to the example 1.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-5.webp" alt="PHP Pagination"> <p>After including CSS code into the index1.php file, the pagination will be looked like the screenshot below. In example 1, we have created simple pagination that was logically correct, but visually it is not so good. </p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-6.webp" alt="PHP Pagination"> <h3>Code for Random Moment</h3> <p>In case when the number of pages is too much, this code helps us for random moment. By entering the page number in the input field, a user can directly move to that page. This code is written in JavaScript.</p> <pre> function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p>Apart from all these codes, we have also included bootstrap into index1.php to make the table view good. This code is written inside the tag.</p> <pre> </pre> <hr></1)?1:page));></pre></$total_pages){></=$total_pages;>