Mik3e
Erfahrenes Mitglied
Hi zusammen,
Ich weiß, es gab hier schon einige Threads zum Thema "Datensätze durchblättern", allerdings waren diese sowie das Tut nicht wirklich befriedigend.
Hier das "Pflichtenheft":
1. Daten
Die Daten werden aus einem SQL Query generiert (die Datenstruktur ist in diesem Fall egal ). Der Resultset beinhaltet > 10.000 Datensätze, also ne ganze Menge.
2. Layout der Blätterfunktion:
Der User hat folgende Möglichkeiten:
a.) User kann einstellen, wie viele Datensätze pro Seite angezeigt werden
b.) User kann jeweils eine Seite vor/zurück sowie direkt zur ersten oder letzten Seite springen.
c.) User kann in einem Drop Down Feld eine bestimmte Seite direkt annavigieren.
d.) Der User sieht, auf welcher Seite er sich gerade befindet (z.B.: "Seite 3 von 203")
Alle Entwickler die mit PHPMyAdmin arbeiten, haben die Ähnlichkeit sicher erkannt
Nun stellen sich mehrere Fragen:
1. Daten in Session-Array packen?
Ist es clever, den gesamten Datenstock zuerst in einem Session-Array einzulesen, und dann die Ausgabe über Array Funktionen steuern?
Vorteile:
Ich kenne von Anfang an die Gesamt-Anzahl an Datensätzen und muss nur einmal die Daten auslesen (bessere SQL Performance).
Nachteil:
Ändern sich die Stammdaten während der User blättert, sieht er nicht die aktualisierten Daten (da diese ja nicht beim Blättern neu geladen, sondern aus dem Session Array ausgelesen werden).
2. Daten beim Blättern neu abfragen?
Die zweite Möglichkeit wäre, die Daten bei jedem Seitenaufruf neu aus der DB abzufragen und mit LIMIT im SQL Query zu arbeiten.
Hat den Vorteil, dass die Daten immer aktuell sind (im Gegensatz zum Session Array) und die eigentliche Datenabfrage dank LIMIT relativ schnell ist.
Nachteil:
Ich muss zusätzlich eine zweite Abfrage bei jedem Seitenaufruf implementieren, die mir die Gesamtanzahl an Datensätzen ausliest (da ansonsten die ganzen Berechnungen nicht möglich sind. z.B: Seite n von m kann man ohne die Gesamtanzahl an Datensätzen zu kennen nicht anzeigen.)
Mir ist klar, dass beide Varianten technisch möglich sind. Ich habe auch schon mehrere Blätter-Funktionen implementiert, nur habe ich den "Stein der Weisen" bisher nicht wirklich gefunden.
Vielleicht hat jemand von Euch Erfahrungswerte und kann mir diese mitteilen
Danke & LG
Mike
Ich weiß, es gab hier schon einige Threads zum Thema "Datensätze durchblättern", allerdings waren diese sowie das Tut nicht wirklich befriedigend.
Hier das "Pflichtenheft":
1. Daten
Die Daten werden aus einem SQL Query generiert (die Datenstruktur ist in diesem Fall egal ). Der Resultset beinhaltet > 10.000 Datensätze, also ne ganze Menge.
2. Layout der Blätterfunktion:
Der User hat folgende Möglichkeiten:
a.) User kann einstellen, wie viele Datensätze pro Seite angezeigt werden
b.) User kann jeweils eine Seite vor/zurück sowie direkt zur ersten oder letzten Seite springen.
c.) User kann in einem Drop Down Feld eine bestimmte Seite direkt annavigieren.
d.) Der User sieht, auf welcher Seite er sich gerade befindet (z.B.: "Seite 3 von 203")
Alle Entwickler die mit PHPMyAdmin arbeiten, haben die Ähnlichkeit sicher erkannt
Nun stellen sich mehrere Fragen:
1. Daten in Session-Array packen?
Ist es clever, den gesamten Datenstock zuerst in einem Session-Array einzulesen, und dann die Ausgabe über Array Funktionen steuern?
Vorteile:
Ich kenne von Anfang an die Gesamt-Anzahl an Datensätzen und muss nur einmal die Daten auslesen (bessere SQL Performance).
Nachteil:
Ändern sich die Stammdaten während der User blättert, sieht er nicht die aktualisierten Daten (da diese ja nicht beim Blättern neu geladen, sondern aus dem Session Array ausgelesen werden).
2. Daten beim Blättern neu abfragen?
Die zweite Möglichkeit wäre, die Daten bei jedem Seitenaufruf neu aus der DB abzufragen und mit LIMIT im SQL Query zu arbeiten.
Hat den Vorteil, dass die Daten immer aktuell sind (im Gegensatz zum Session Array) und die eigentliche Datenabfrage dank LIMIT relativ schnell ist.
Nachteil:
Ich muss zusätzlich eine zweite Abfrage bei jedem Seitenaufruf implementieren, die mir die Gesamtanzahl an Datensätzen ausliest (da ansonsten die ganzen Berechnungen nicht möglich sind. z.B: Seite n von m kann man ohne die Gesamtanzahl an Datensätzen zu kennen nicht anzeigen.)
Mir ist klar, dass beide Varianten technisch möglich sind. Ich habe auch schon mehrere Blätter-Funktionen implementiert, nur habe ich den "Stein der Weisen" bisher nicht wirklich gefunden.
Vielleicht hat jemand von Euch Erfahrungswerte und kann mir diese mitteilen
Danke & LG
Mike