Heim > Backend-Entwicklung > PHP-Tutorial > Wie implementiert man die Paginierung in MySQL mit LIMIT und OFFSET?

Wie implementiert man die Paginierung in MySQL mit LIMIT und OFFSET?

DDD
Freigeben: 2024-11-17 12:13:01
Original
317 Leute haben es durchsucht

How do you implement pagination in MySQL using LIMIT and OFFSET?

Verwendung von MySQL LIMIT und OFFSET für die Paginierung

Paginierung ist für die Anzeige großer Datensätze in überschaubaren Blöcken unerlässlich. MySQL bietet zwei Befehle, LIMIT und OFFSET, um diese Funktionalität zu aktivieren.

LIMIT legt die maximale Anzahl der abzurufenden Zeilen fest, während OFFSET die Anzahl der Zeilen angibt, die vor dem Abruf übersprungen werden sollen. Dadurch können Sie eine bestimmte Seite mit Daten abrufen.

Beispielcode für die Paginierung:

Beachten Sie den folgenden Code, der vier Elemente pro Seite anzeigt:

$result = mysqli_query($con, "SELECT * FROM menuitem LIMIT 4");
Nach dem Login kopieren

Dieser Code ruft die ersten vier Zeilen aus der Menüelementtabelle ab. Um mehrere Seiten zu erstellen, können Sie OFFSET verwenden, um Zeilen zu überspringen:

$offset = 4;
$result = mysqli_query($con, "SELECT * FROM menuitem LIMIT 4 OFFSET $offset");
Nach dem Login kopieren

Dieser Code überspringt die ersten vier Zeilen und ruft die nächsten vier ab.

Bestimmen der Gesamtzahl von Seiten:

Um eine Paginierung ohne fest codierte Seitenzahlen zu erstellen, müssen Sie zunächst die Gesamtzahl der Seiten ermitteln. Sie können dies erreichen, indem Sie die Gesamtzahl der Zeilen in der Tabelle zählen:

$sql = "SELECT COUNT(*) FROM menuitem";
$result = mysqli_query($con, $sql);
$row_count = mysqli_num_rows($result);
// Free the result set
mysqli_free_result($result);
Nach dem Login kopieren

Jetzt können Sie die Anzahl der Seiten berechnen:

$items_per_page = 4;
$page_count = (int)ceil($row_count / $items_per_page);
Nach dem Login kopieren

Seitenlinks generieren:

Wenn die Gesamtzahl der Seiten bekannt ist, können Sie Seitenlinks generieren:

for ($i = 1; $i <= $page_count; $i++) {
  if ($i === $page) { // This is the current page
    echo 'Page ' . $i . '<br>';
  } else { // Show link to other page
    echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>';
  }
}
Nach dem Login kopieren

Dadurch werden Links zu allen Seiten generiert und die aktuelle Seite hervorgehoben.

Durch die Verwendung dieses Ansatzes können Sie eine Paginierung ohne feste Codierung von Seitenzahlen erstellen und Flexibilität bei der Anzeige großer Datensätze gewährleisten.

Das obige ist der detaillierte Inhalt vonWie implementiert man die Paginierung in MySQL mit LIMIT und OFFSET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage