Ermitteln der Gesamtergebnisse für paginierte MySQL-Abfragen mit Offset und Limit
Beim Implementieren der Paginierung in PHP/MySQL wird die Gesamtzahl der Ergebnisse ermittelt entscheidend für die Berechnung der Seitenzahl. Anstatt die Abfrage zweimal auszuführen, sollten Sie die Verwendung von SQL_CALC_FOUND_ROWS in Betracht ziehen.
Beispiel:
SELECT SQL_CALC_FOUND_ROWS * FROM directory_listings WHERE category_id = ? LIMIT ? OFFSET ?
Diese Abfrage ruft die gewünschte Anzahl von Ergebnissen ab und berechnet gleichzeitig die Gesamtzahl der qualifizierenden Ergebnisse Zeilen.
// Execute the query with pagination parameters $results = $db->query($query, [ 'category_id' => $categoryId, 'limit' => $limit, 'offset' => $offset ]); // Retrieve the found row count $foundRows = $db->query("SELECT FOUND_ROWS() AS num_rows")->row(); // Calculate total pages $totalPages = ceil($foundRows->num_rows / $limit);
Vorteile:
Hinweis:
SQL_CALC_FOUND_ROWS muss in Verbindung mit LIMIT verwendet werden, um die Zeilenanzahl genau zu berechnen und Fehlzählungen zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von OFFSET und LIMIT effizient die Gesamtzahl der Ergebnisse für paginierte MySQL-Abfragen ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!