PHP-Paginierung

Subodh Poudel 30 Januar 2023
  1. Verwenden Sie die LIMIT-Klausel mit der SELECT-Anweisung in SQL, um die Zeilen in PHP zu paginieren
  2. Fügen Sie die Navigationsfunktionen Previous und Next in der Paginierung in PHP hinzu
PHP-Paginierung

Dieser Artikel stellt eine Methode vor, um eine Paginierung in PHP durchzuführen, die die LIMIT-Klausel mit der SELECT-Anweisung in SQL verwendet. Wir verwenden die LIMIT-Klausel, um die bestimmte Anzahl von Zeilen, die von einem bestimmten Index beginnen, auszuwählen, die als Paginierung angezeigt werden sollen.

Wir werden auch eine andere Methode demonstrieren, um die Navigationsfunktionen Zurück und Weiter in die PHP-Paginierung einzufügen. Diese Methode fügt der ersten Methode nur die zusätzliche Funktion hinzu, um auf den entsprechenden Seiten zu navigieren.

Verwenden Sie die LIMIT-Klausel mit der SELECT-Anweisung in SQL, um die Zeilen in PHP zu paginieren

Wir können die LIMIT-Klausel mit der SELECT-Anweisung verwenden, um die ersten n Ergebnisse anzugeben, die auf einer Seite angezeigt werden sollen. Wir können die Seitennummer im anchor-Tag als GET-Methode zum Durchsuchen der Seiten angeben. Bei dieser Methode definieren wir die Anzahl der anzuzeigenden Zeilen pro Seite und rufen alle Zeilen aus der Datenbank ab, um die erforderliche Gesamtseitenzahl zu berechnen. Wir können das Array $_GET mit der Funktion isset() verwenden, um die vom Benutzer angeforderte Seitennummer zu erhalten.

Erstellen Sie zum Beispiel eine Variable $results_per_page und speichern Sie 2 darin. Verwenden Sie die Funktion mysqli_num_rows(), um die Anzahl der Zeilen in der Datenbank zu ermitteln und in der Variablen $number_of_results zu speichern. Verwenden Sie die Funktion ceil(), um die Gesamtzahl der Seiten zu bestimmen, die für die Anzeige der Zeilen erforderlich sind. Teilen Sie die Variable $number_of_results durch die Variable $results_per_page innerhalb der Funktion ceil(). Verwenden Sie die superglobale Variable $_GET mit der Funktion isset(), um zu überprüfen, ob die Variable page gesetzt wurde. Falls nicht gesetzt, setzen Sie die Variable $page auf 1. Wenn die Variable gesetzt wurde, weisen Sie den Wert der Variablen $page zu. Subtrahiere die Variable $page mit 1 und multipliziere sie mit der Variablen $this_page_first_result. Speichern Sie die Operation in der Variablen $this_page_first_result. Schreiben Sie eine SQL-Anweisung mit LIMIT-Klausel als SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page. Führen Sie die Abfrage aus und zeigen Sie die Ergebnisse an. Erstellen Sie am Ende eine for Schleife, um zwischen der Variablen $page und der $number_of_page zu schleifen. Innerhalb der Schleife echo das anchor-Tag und schreibe den Wert des href-Attributs als index.php?page'.$page. Schreiben Sie zwischen die Tags anchor die Variable $page.

Im folgenden Beispiel enthält die Tabelle alpha in der Datenbank sechs Zeilen. Nach der Paginierung werden pro Seite zwei Zeilen angezeigt. Die Funktion ceil() bestimmt die Gesamtzahl der Seiten, die zum Anzeigen der Zeilen benötigt werden. Anfänglich ist die Variable $page nicht gesetzt, die Seite beginnt also mit Seite 1. Die Variable $this_page_first_result bestimmt die Seitennummer, auf der sich der Benutzer gerade befindet. Die Variablen $this_page_first_result bezeichnet die erste Zeile der Seite. Die Variable $results_per_page bezeichnet die Anzahl der Ergebnisse pro Seite. Der Ausgabebereich zeigt die Seite index.php an. Beim Anklicken auf Seite 2 gibt es die nächsten beiden Zeilen aus der Datenbank aus.

Beispielcode:

#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> ';
}
?>

Ausgabe:

1 A 
2 B 
1 2 3

Fügen Sie die Navigationsfunktionen Previous und Next in der Paginierung in PHP hinzu

Wir können dem Codebeispiel in der ersten Methode einige zusätzliche Codeschnipsel hinzufügen, um die Navigationsfunktionen Previous und Next in der Paginierung bereitzustellen. Wir können die Variable $page um 1 inkrementieren und dekrementieren, um auf die vorherige und die nächste Seite zu zeigen. Wir können die inkrementierten und dekrementierten Variablen im anchor-Tag verwenden, um die Funktionen Next und Previous zu erreichen.

Erstellen Sie beispielsweise zwei Variablen, $prev und $next. Subtrahieren Sie die Variable $page mit eins und weisen Sie die Operation der Variablen $prev zu. Fügen Sie auf ähnliche Weise eine der Variablen $page hinzu und weisen Sie sie der Variablen $next zu. Echo eines anchor-Tags mit der Aufschrift Previous direkt vor der for-Schleife der Seitenzahlen. Schreiben Sie den Wert index.php?page=' . $prev . im Attribut href des Tags anchor. Erstellen Sie auf die gleiche Weise ein weiteres anchor-Tag für Next, indem Sie die Variable $next als Wert von page im Attribut href verwenden.

Im Ausgabeabschnitt unten wird die zweite Seite angezeigt. Ein Klick auf Previous führt zur ersten Seite und ein Klick auf Next bringt Sie zur dritten Seite.

Beispielcode:

# 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> ';
?>

Ausgabe:

3 C 
4 D 
Previous 1 2 3 Next
Subodh Poudel avatar Subodh Poudel avatar

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