Was ist der beste Weg, um Ergebnisse in PHP Paginieren
-
01-07-2019 - |
Frage
Ich brauche in einer Website viele Seiten von Nachrichten angezeigt werden soll.
Soll ich die Paginierung in der db-Abfrage tue mit Limit oder tut es in meinem PHP-Skript schließlich die Ergebnisse zu bekommen?
Lösung
Verwenden Grenze in SQL! Jedes Mal!
Ansonsten sind Sie werfen um wesentlich mehr Daten als nötig, was Ihre Skripte unnötig langsam macht, und wird auf Probleme bei der Skalierbarkeit als die Menge der Daten in Tabellen Erhöhungen führen.
Grenze ist dein Freund!
Andere Tipps
Mit Limit -. Sie wollen nicht aus der Datenbank des Scripting-Engine Datenmengen zu übertragen, wenn Sie es vermeiden können
Wenn Sie nur mit einem DBMS arbeiten wollen, die dies unterstützen, als es auf dem DBMS tun. Wenn Sie andere DBMS in Zukunft unterstützen wollen, dann Anzeige eine Schicht zwischen dem Griff kann auf dem aktuellen DBMS abhängig.
Sie können einige vorhandene Bibliotheken verwenden, Ihnen zu helfen:
Birne :: Pager mit dem Ausgang helfen kann, und den Datenbankverkehr zu begrenzen nur das, was Sie benötigen, können Sie einen Wrapper in den Beispielen verwendet werden, solange mit ihm gekommen.
Hier ist ein Tutorial ich gerade gegoogelt, dass sie alle ...
hat Neben LIMIT
verwenden, würde ich vorschlagen, eine explizite WHERE
Klausel mit dem Offset, zu setzen und die Ergebnisse auf dieser Spalte bestellen. Zum Beispiel:
--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50
dieses weiteren Grenzen die Nummern der Zeilen, zu denen in den gewünschten Bereich zurückgeführt. Mit Hilfe des WHERE
Ansatzes (im Gegensatz zu einer LIMIT
Klausel mit einem separaten Offset, beispielsweise LIMIT 50,50
) ermöglicht es Ihnen, effektiv durch die Datensätze mit anderen natürlichen Tasten mit Paging zu tun, zum Beispiel alphabetisch nach Namen oder nach Datum sortiert.
Persönlich würde ich die Abfrage verwenden, es zu tun. Offensichtlich, dass, wenn Ihr Umgang mit AJAX ändern und so, aber nur eine grundlegende Grenze in der Abfrage zu tun und Ausgabe der Ergebnisse ist einfach und effizient.