SQL abfrage über mehrere Seiten
Chris
- php
Hallo,
ich arbeite momentan einer einer SQL abfrage, weis aber nicht so recht weiter...
momentan bekomme ich alle datensätze auf einer seite ausgegeben, und ich würde es gerne auf 100 einträge pro seite begränzen...
weis da jemand rat für mich? danke im vorraus...
momentan bekomme ich alle datensätze auf einer seite ausgegeben, und ich würde es gerne auf 100 einträge pro seite begränzen...
meine glaskugel sagt, du verwendest mysql - sie sagt auch du suchst nach LIMIT
Hallo,
ich arbeite momentan einer einer SQL abfrage, weis aber nicht so recht weiter...
momentan bekomme ich alle datensätze auf einer seite ausgegeben, und ich würde es gerne auf 100 einträge pro seite begränzen...
Deine DB-Engine muss es einmal unterstützen, dass ein Ergebnis "fensterweise" ausgegeben werden kann, bei mysql geht das mit limit.
Wenn das gegeben ist, ermittelst Du zuerst die Gesamtanzahl der Records und teilst Die dann auf deinen Pager, den Du noch bauen musst auf. Z.B. hast Du 225 Records im Ergebnis. Aufgeteilt ergeben sich 3 Seiten:
1-100
101-200
201-225
Für die erste Seite baust Du schon die limitKlause ein, und zeigst "101-200" sowie "201-225" als Links mit Parametern für weitere limitKlausen, die bei einem Klick dauf den Link die Abfrage "seitenweise" aus der DB holen und darstellen.
Das Ganze ist nicht ganz trivial, wenn viele (CGI)Parameter im Spiel sind, geht leicht die Übersicht verloren. Die Parameter könnten so aussehen:
?pager=1-100
?pager=101-200
?pager=201-225
Oder besser, weil leichter zu parsen:
?pager=1&start=101&stop=200
Stelle das Ganze auf eine solide Kontrollstruktur, damit jeder Zustand Deines CGIs definiert ist und denke daran, dass GET-Parameter leicht zu manipulieren sind. Z.B. darf es nicht passieren, dass, wenn ein Depp eingibt:
?pager=1&start=0&stop=1000000000000
mehr als 100 Einträge requestet werden.
Viele Grüße,
Hotte