PHP Gästebuch auf mehrere Seiten verteilen

Zneaf

Erfahrenes Mitglied
Hey Leute =)

ich habe vor einiger Zeit mein eigenes Gästebuch programmiert, dass pro Seite maximal 25 GB - Einträge anzeigt. Sobald es mehr als 25 GB-Einträge sind, wird eine neue Seite mit dazugehörigem Link erstellt und der älteste Beitrag wird auf die nächste Seite verschoben. D.h. der aktuellste Eintrag steht immer auf der ersten Seite des Gästebuchs und der älteste auf der letzten Seite. Zwischen den einzelnen Seiten kann man dann logischerweise über Links hin und her blättern.

Das einzige Problem bei der Sache ist:
Standardmäßig gelangt man auf Seite 0 des Gästebuchs, sobald man es aufruft.
Sobald der erste GB-Eintrag geschrieben wurde, entsteht direkt ein neuer Link, der auf Seite 1 verweist (die natürlich leer ist, da es noch keinen 26ten GB-Eintrag gibt).
Eigentlich sollte Seite 1 erst dann erscheinen, wenn mehr als 25 GB-Einträge vorhanden sind. Folglich habe ich immer einen Link und eine GB-Seite (die leer ist) zuviel.

Hier ein Teil des Codes:

PHP:
// Liste der verfügbaren Seiten + Link zur vorhergehenden bzw. nächsten Seite einfügen.
if ($page > 0) {
	$i = $page-1;
	echo "<font face=\"Arial\" color=\"#333333\"><a href=\"".$_SERVER['PHP_SELF']."?site=gbook&page=$i\" style=\"text-decoration: none\">zurück</a></font> ";
}
for($i = 0; $i <= $seiten; $i++) {
	if ($i == $page) {
		echo "<font face=\"Arial\" color=\"#333333\"> $i ";
	}
	else {
		echo "<font face=\"Arial\" color=\"#333333\"><a href=\"".$_SERVER['PHP_SELF']."?site=gbook&page=$i\" style=\"text-decoration: none\">$i</a> </font>";
	}
}
if ($page < $seiten) {
	$i = $page+1;
	echo " <font face=\"Arial\" color=\"#333333\"><a href=\"".$_SERVER['PHP_SELF']."?site=gbook&page=$i\" style=\"text-decoration: none\">weiter</a></font>";
}

Habt ihr vielleicht ne Idee, wo da der Wurm drin ist?
Falls ihr noch eine andere Code-Stelle benötigt oder Fragen habt, sagt bitte bescheid =)

Vielen Dank im Voraus^^

LG Zneaf :)
 
Ich würde den Fehler hier vermuten:

PHP:
for($i = 0; $i <= $seiten; $i++)

Sollte möglicherweise so sein:

PHP:
for($i = 0; $i < $seiten; $i++)
 
Hey saftmeister ;)

du hattest Recht...daran lags.
Allerdings gibts nun immernoch das Problem, dass ich den Button "weiter" zuviel habe^^
Hast vllt. ne Idee, woran das liegen könnte?^^

Danke schonmal ;)

LG Zneaf
 
Denk schon: Da du ja offensichtlich immer eine Seite in $seite mehr hast, als Indizes im Array, müsstest du bei der Prüfung von $seiten eins abziehen:

PHP:
if ($page < $seiten-1) { 
  // Weiter button
 
Hey saftmeister ;)

du bist echt super!
2 Vorschläge...2 Volltreffer xD

Hat beides super funktioniert....vielen Dank ;)

LG Zneaf^^
 
Zurück