Hektik
Erfahrenes Mitglied
Hallo!
Ich habe ein Gästebuch geschrieben und darin eine "Blätter-Navigation" eingebaut, die ich als Script vorliegen hatte. Es funktioniert alles wunderbar, nur ein kleines Problem tritt auf: Sofern der Restwert der Division von "Anzahl aller Einträge" durch "Einträge pro Seite" den Wert 0 ergibt, erzeuge ich eine weitere (unnötige) letzte Seite, die jedoch keine Einträge auflistet.
Der Basis-Code sieht folgendermaßen aus:
Und dann noch der Code zum Blättern:
Die Ausgabe liste ich dann mit
Meine Frage ist nun: Wie kann ich es ermöglichen, dass eben diese letzte leere Seite nicht angezeigt wird?
Ich habe schon diverse Sachen probiert, aber ich vermute, dass es nicht mit einer einfachen Bastelei an meinem Code selbst getan ist. Vielmehr ist es doch notwendig, auf den nichtvorhandenen Divisionsrest einzugehen, oder nicht?
Ich habe auch schon ausgiebig gegooglet, das hat mir aber leider auch nicht weitergeholfen.
Deswegen habe ich hier diesen Thread eröffnet und hoffe auf eine hilfreiche Antwort!
Ich habe ein Gästebuch geschrieben und darin eine "Blätter-Navigation" eingebaut, die ich als Script vorliegen hatte. Es funktioniert alles wunderbar, nur ein kleines Problem tritt auf: Sofern der Restwert der Division von "Anzahl aller Einträge" durch "Einträge pro Seite" den Wert 0 ergibt, erzeuge ich eine weitere (unnötige) letzte Seite, die jedoch keine Einträge auflistet.
Der Basis-Code sieht folgendermaßen aus:
PHP:
// ich linke folgendermaßen auf das Gästebuch: index.php?navigation=guestbook
// Wenn beim ersten betreten der Gästebuchseite die Seitenzahl nicht angegeben ist,
// setze mir diese auf "Seite 0"
if (!isset($_GET['page'])) { $_GET['page'] = 0; }
// Einträge pro Seite
$proseite=3;
// Gesamtanzahl Einträge ermitteln
$sql = "SELECT * FROM guestbook ORDER BY id DESC";
$result = mysql_query($sql);
$number = mysql_num_rows($result);
// Anzahl Seiten festlegen
$seiten=floor($number/$proseite);
$start=$_GET['page'] * $proseite;
// entsprechende Einträge auslesen
$sql="SELECT * FROM neue_webs ORDER BY id DESC LIMIT $start,$proseite";
$result = mysql_query($sql);
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }
Und dann noch der Code zum Blättern:
PHP:
// RÜCKWÄRTS BLÄTTERN
if ($_GET['page']>0) {
$i=$_GET['page']-1;
echo "<a class=\"a10grau\" href=\"index.php?navigation=guestbook&page=$i\">« zurück</a>";
}
// Wenn auch zurückgeblättert werden soll, dann trenne mir vorwärts und rückwärts mit: if ($_GET['page']<$seiten && $_GET['page']>0) {
echo ' | ';
}
// VORWÄRTS BLÄTTERN
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a class=\"a10grau\" href=\"index.php?navigation=guestbook&page=$i\">weiter »</a>";
}
Die Ausgabe liste ich dann mit
PHP:
while ($row = mysql_fetch_assoc($result)) {
// hier steht der CSS-Formatierungscode um die Einträge darzustellen
}
Meine Frage ist nun: Wie kann ich es ermöglichen, dass eben diese letzte leere Seite nicht angezeigt wird?
Ich habe schon diverse Sachen probiert, aber ich vermute, dass es nicht mit einer einfachen Bastelei an meinem Code selbst getan ist. Vielmehr ist es doch notwendig, auf den nichtvorhandenen Divisionsrest einzugehen, oder nicht?
Ich habe auch schon ausgiebig gegooglet, das hat mir aber leider auch nicht weitergeholfen.
Deswegen habe ich hier diesen Thread eröffnet und hoffe auf eine hilfreiche Antwort!
Zuletzt bearbeitet: