Also ich hab mich jetzt mal umgeguckt, aber überall nur Lösungen gefunden die die Sortierung nicht so berücksichtigen wie ich sie brauche. Deswegen hab mich jetzt doch dafür entschieden euch mit einem weiteren Seitenaufteilungs-Thread zu belästigen. Nicht böse sein, falls ich doch etwas übersehen habe.
Hier mal mein Problem bzw. meine Vorstellung wie das funktionieren soll. Ich rufe eine PHP-Seite auf die aus einer Datenbank die Datensätze holt und als Tabelle auflistet. Durch Klick auf eine Spaltenüberschrift wird die Seite dann neu geladen und bekommt per GET das Sortierungkriterium für die neue SELECT-Anweisung mitgeteilt.
Nun möchte ich das ganze gerne auf mehrere Seiten aufteilen. Dabei soll die Tabelle aber weiterhin nach jeder Spalte sortierbar sein und zwar soll nur das sortiert werden was ich auch sehe. Das Problem ist, dass bei der SELECT-Abfrage erst ORDER BY und dann LIMIT stehen muss. Deshalb werden zuerst _alle_ Datensätze sortiert bevor ich die Datensätze für eine Seite rauspicken kann. Wenn ich also die ersten 10 Datensätze der ersten Seite hole und dann die Tabelle nach irgendwas sortiere, bekomme ich nicht die gleichen 10 sortiert zurück.
Jetzt ist meine Frage ob das überhaupt irgendwie mit SQL zu lösen ist. Vielleicht sollte man sowas ja generell über Array-Funktionen machen, evtl. ist das sogar schneller. Ich weiss es leider nicht und würde mich freuen wenn mir jemand dazu einen Rat geben könnte.
mehirc
Hier mal mein Problem bzw. meine Vorstellung wie das funktionieren soll. Ich rufe eine PHP-Seite auf die aus einer Datenbank die Datensätze holt und als Tabelle auflistet. Durch Klick auf eine Spaltenüberschrift wird die Seite dann neu geladen und bekommt per GET das Sortierungkriterium für die neue SELECT-Anweisung mitgeteilt.
Nun möchte ich das ganze gerne auf mehrere Seiten aufteilen. Dabei soll die Tabelle aber weiterhin nach jeder Spalte sortierbar sein und zwar soll nur das sortiert werden was ich auch sehe. Das Problem ist, dass bei der SELECT-Abfrage erst ORDER BY und dann LIMIT stehen muss. Deshalb werden zuerst _alle_ Datensätze sortiert bevor ich die Datensätze für eine Seite rauspicken kann. Wenn ich also die ersten 10 Datensätze der ersten Seite hole und dann die Tabelle nach irgendwas sortiere, bekomme ich nicht die gleichen 10 sortiert zurück.
Jetzt ist meine Frage ob das überhaupt irgendwie mit SQL zu lösen ist. Vielleicht sollte man sowas ja generell über Array-Funktionen machen, evtl. ist das sogar schneller. Ich weiss es leider nicht und würde mich freuen wenn mir jemand dazu einen Rat geben könnte.
mehirc