Hallo,
ich programmier ja derzeitig ein Gästebuch mit einer Blätterfunktion.
Das Problem ist jetzt das die Blätterfunktion nicht die richtigen Einträge ausgibt.
Sozusagen ist die Ansicht der Einträge gerade anders rum, auf der letzten Seite stehen die wenigsten Einträge während auf der ersten Seite die meisten Einträge stehen (also max. 5).
Alles anzeigen
Die Funktion getEntries bei der die Einträge geholt werden sieht so aus:
Ich habe das ja mittels LIMIT bestimmt welche Einträge geholt werden. $end ist in dem Fall $entries_per_site[0] und der Wert beträgt 5 (den Wert bekommt er aus der Datenbank).
Nochmal zur Veranschaulichen: Ich habe 28 Einträge und 6 Seiten und 5 Einträge pro Seite. Auf der ersten Seite stehen Einträge von 24-28 und auf der letzten Seite Einträge von 1-3.
Müsste ja jetzt genau andersrum sein: 26-28 und auf der letzten Seite 1-5.
Findet da einer den Fehler - das macht mich noch ganz wahnsinnig :(!
ich programmier ja derzeitig ein Gästebuch mit einer Blätterfunktion.
Das Problem ist jetzt das die Blätterfunktion nicht die richtigen Einträge ausgibt.
Sozusagen ist die Ansicht der Einträge gerade anders rum, auf der letzten Seite stehen die wenigsten Einträge während auf der ersten Seite die meisten Einträge stehen (also max. 5).
Quellcode
- // number of entries completly
- $entries_query = $myDB->query("SELECT entry_ID FROM ".TABLE_PREFIX."entry ORDER BY entry_date DESC");
- $entries_complete = $myDB->affected_rows();
- // get maximum number of entries per site
- $entries_per_site = $myDB->getData("SELECT setting_value FROM ".TABLE_PREFIX."settings WHERE setting_name = 'entries_per_site'");
- // calculate number of sites
- $number_of_sites = ceil($entries_complete/$entries_per_site[0]);
- // get site number per GET and check if site number numeric and not over 0 or over number_of_sites
- if(!isset($_GET["siteID"]) OR $_GET["siteID"] < 0 OR $_GET["siteID"] > $number_of_sites OR !is_numeric($_GET["siteID"]))
- {
- $currentSite = 1;
- }
- else
- {
- $currentSite = $_GET["siteID"];
- }
- // calculate start entry
- $start = $number_of_sites*$entries_per_site[0]-$entries_per_site[0]; [b]// Das Problem liegt jetzt glaube ich hier![/b]
- // get entries
- $entries = $gbook->getEntries($start, $entries_per_site[0]);
Die Funktion getEntries bei der die Einträge geholt werden sieht so aus:
Quellcode
- function getEntries($start, $end)
- {
- // save entries in an array
- $query = myDB::getInstance()->query("SELECT entry_name, entry_text, DATE_FORMAT(entry_date,'".DATETIME_FORMAT."') AS entry_date_form, entry_mail, entry_website FROM ".TABLE_PREFIX."entry ORDER BY entry_date DESC LIMIT ".$start.",".$end."");
- while($row = myDB::getInstance()->fetchArray())
- {
- $entries[] = $row;
- }
- return $entries;
- }
Ich habe das ja mittels LIMIT bestimmt welche Einträge geholt werden. $end ist in dem Fall $entries_per_site[0] und der Wert beträgt 5 (den Wert bekommt er aus der Datenbank).
Nochmal zur Veranschaulichen: Ich habe 28 Einträge und 6 Seiten und 5 Einträge pro Seite. Auf der ersten Seite stehen Einträge von 24-28 und auf der letzten Seite Einträge von 1-3.
Müsste ja jetzt genau andersrum sein: 26-28 und auf der letzten Seite 1-5.
Findet da einer den Fehler - das macht mich noch ganz wahnsinnig :(!