[quote=esskar,18.10.2006, 07:49][quote=MartinR,18.10.2006, 06:46]1. Auf welcher Seite sich nun ein bestimmter Datensatz befindet muss man noch selbst berechnen
2. Den Start-Wert für das LIMIT in SQL muss mann auch noch selbst berechnen[/quote]
zu 2. "mein" Modul liefert dür das SQL LIMIT die passenden Parameter.
zu 1. ergibt sich dann[/quote]
zu2) Nun da ist ja der Punkt wo ich mich immer im Kreis drehe. Henne oder Ei, was war eher da?
Damit 'skipped' berechnet werden kann, muss dem Objekt ja die Menge der insgesamt verfügbaren DS bekannt sein (total_entries). Die kann aber noch nicht bekannt sein, da ich die SQL-Abfrage ja erst noch mache wozu ich dann aber wieder 'skipped' brauche. Außer man nimmt natürlich 2 Abfragen.
*dies müsste also vor SQL stehen damit skipped bekannt ist
use Data::Page;
my $page_info = Data::Page->new( ... );
SELECT
SQL_CALC_FOUND_ROWS
...
FROM
...
LIMIT
$page_info->skipped, $page_info->entries_per_page
*es kann aber erst hier stehen damit die Anzahl der DS bekannt ist
use Data::Page;
my $page_info = Data::Page->new( ... );
zu1) Ergibt sich aber leider nicht so einfach. Wenn ich 9852 DS habe und mir den 73ten anzeigen lassen will bei 12 DS je Seite wurde ich gerne wissen auf welcher Seite dieser steht. Keines der beiden Module hat aber diese Möglichkeit.
Beispiel: Ich lasse mir Überschriften in einem Forum anzeigen. 12 je Seite. Auf der 3. Seite nehme ich den 3. (also insgesamt den 27ten) und möchte mir die Details ansehen. Um dann aber wieder zurück zu kommen, brauche ich wieder die Seite (3) auf der dieser gestanden ist. Jetzt muss ich diese Angabe immer im cgi-query mitziehen.