Ich muss viele Seiten von Nachrichten auf einer Website anzeigen.
Sollte ich die Seitennummerierung in der DB-Abfrage mit Limit tun oder tun Sie es in meinem PHP-Skript nach dem Erhalten aller Ergebnisse?Was ist der beste Weg, um Ergebnisse in PHP paginieren
Antwort
Verwenden Sie das Limit in SQL! Jedes Mal!
Andernfalls werfen Sie erheblich mehr Daten um, als Sie benötigen, was Ihre Skripte unnötig verlangsamt und zu Skalierbarkeitsproblemen führt, wenn die Datenmenge in Ihren Tabellen zunimmt.
Limit ist dein Freund!
Verwenden Sie Limit - Sie möchten nicht Massen von Daten aus der Datenbank in die Skript-Engine übertragen, wenn Sie es vermeiden können.
Persönlich würde ich die Abfrage verwenden, um es zu tun. Offensichtlich kann sich das ändern, wenn Sie mit AJAX und so umgehen, aber nur ein grundlegendes Limit in der Abfrage zu setzen und die Ergebnisse auszugeben ist einfach und effizient.
Wenn Sie nur mit einem DBMS arbeiten wollen, das dies unterstützt, dann tun Sie dies auf dem DBMS. Wenn Sie zukünftig andere DBMS unterstützen wollen, dann geben Sie eine Schicht dazwischen an, die abhängig vom aktuellen DBMS arbeiten kann.
Sie können einige vorhandene Bibliotheken verwenden, Ihnen zu helfen:
Birne :: Pager kann mit der Ausgabe helfen, und die Datenbank Verkehr nur zu begrenzen, was Sie benötigen, können Sie einen Wrapper in den Beispielen verwendet werden, solange komm damit.
Hier ist ein tutorial ich gerade gegoogelt, dass alles ... hat
Zusätzlich LIMIT
zu verwenden, würde ich vorschlagen, eine explizite WHERE
Klausel des Offset, zu setzen und die Ergebnisse der Reihenfolge auf dieser Spalte. 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
Dadurch wird die Anzahl der zurückgegebenen Zeilen auf diejenigen beschränkt, die innerhalb des gewünschten Bereichs liegen. Unter Verwendung des WHERE
-Ansatzes (im Gegensatz zu einem LIMIT
-Satz mit einem separaten Versatz, beispielsweise LIMIT 50,50
) können Sie effektiv mit Blättern durch Aufzeichnungen mit anderen natürlichen Schlüsseln umgehen, z. alphabetisch nach Name oder nach Datum sortiert.
- 1. bash - Was ist der beste Weg, um Ergebnisse zu zählen?
- 2. Was ist der beste Weg, um XLS-Datei in PHP
- 3. Was ist beim Flashen der beste Weg, um Parameter beim Paginieren zu behalten?
- 4. Was ist der beste Weg, um Client-Logs in MySQL
- 5. Was ist der beste Weg
- 6. schnellster Weg, um SQL Ergebnisse in PHP
- 7. Was ist der beste Weg, um große MYSQL-Ergebnisse in Tabelle mit Suche/Paginierung zu zeigen?
- 8. Was ist der beste Weg, um einen Stream um
- 9. Was ist der beste Weg, um ein Zählerfeld in MySQL
- 10. Was ist der beste Weg, um in C++ zu casten?
- 11. Was ist der beste Weg, um "chmod + x" in Chef
- 12. Was ist der beste Weg ein Zeitintervall in PHP hinzuzufügen?
- 13. Was ist der beste Weg, QUERY_STRING in PHP zu verwalten?
- 14. Was ist der beste Weg, Konfigurationsvariablen in PHP zu speichern?
- 15. beste Weg, um Ergebnisse zu speichern
- 16. Was ist der beste Weg, PHP-Anwendungen zu erhalten?
- 17. was der beste Weg
- 18. Was ist der beste Weg, um Code zu organisieren?
- 19. Was ist der beste Weg, um Python-Drucke umzuschalten?
- 20. Was ist der beste Weg, um ein Verzeichnis zu leeren?
- 21. Was ist der beste Weg, um mit DBNull
- 22. Was ist der beste Weg, um eine Eigenschaft zu deklarieren?
- 23. Was ist der beste Weg, um einen InputStream zu überwachen?
- 24. Was ist der beste Weg, um jQuery zu lernen?
- 25. Was ist der beste Weg, um vorberechnete Daten zu implementieren?
- 26. Was ist der beste Weg, um eine Tabelle zu deduplizieren?
- 27. Was ist der beste Weg, um Datei vom Server
- 28. Was ist der beste Weg, um Benutzerportrait hochzuladen
- 29. Was ist der beste Weg, um ähnliche Strings zu bearbeiten?
- 30. Was ist der beste Weg, um eine IllegalArgumentException zu fangen