Sönke Tesch: blaettern

Beitrag lesen

hier ist die umgeschriebene Datei, ich habe sie ein bisschen geordnet, und alles eingebaut, so wie es in der Antwort stand.

Ich habe aber irgendwo noch einen Fehler gemacht.
Das Buch sieht schon gut aus, aber das "blaettern" geht immer noch nicht.

Was mir als erstes auffällt: Da, wo die Blätterei sein sollte, steht

Keine weiteren Einträge. _

Man beachte den Unterstrich am Ende. Wenn Du einen Blick in den Quelltext wirfst, den der Browser bekommt, wirst Du dort folgendes finden:

Keine weiteren Einträge. <a href="gaestebuch.php?start=-10&eintraege_pro_seite=10>zurük</a>

Da befindet sich also durchaus ein "zurück" (was ja schonmal was wert ist:), aber der Browser gibt es nicht aus. Die Fehlersuche überlasse ich mal Dir. Tipp: In dem <a>-Tag habe ich ein Zeichen vergessen.
Im "Weiter"-Abschnitt darüber muß dieser Fehler auch korrigiert werden.

if ($start+$eintraege_pro_seite>sizeof($g))

Das funktioniert so nicht zum Zurückblättern. Überlege Dir nochmal genau: Wann bzw. an welcher Position kann man noch zurückblättern? Mal es Dir eventuell auf Papier auf:

0 1 2 3 4 5 6 7 8 9
        ^
        aktuelle Position ($start)

Wann darf man von $start noch etwas abziehen? Und wieviel darf man jeweils abziehen, wenn je Seite fünf Einträge angezeigt werden sollen und die aktuelle Position 0, 3 oder 8 ist? Berechne für jede der genannten drei aktuellen Positionen die neue Position, überlege Dir, ob sie Sinn macht und schließe daraus, wie Deine if-Bedingung aussehen muß.

Last but not least: Warum er alle Einträge ausgibt, ist mir momentan etwas schleierhaft, ich hätte -wenn überhaupt- eher erwartet, daß er garnichts anzeigt. Prüfe, ob $start und $eintraege_pro_seite direkt vor der for-Schleife gesetzt sind:

echo "start=$start schrittweite=$eintraege_pro_seite<br>";

$start sollte 0 sein, $eintraege_pro_seite 10. Falls dem nicht so ist, verschiebe die obige Zeile weiter nach oben, um zu prüfen, wo die beiden wie aussehen und ob's mit den "if ((! isset.."-Sachen passt.

Eventuell tauchen $start und $eintraege_pro_seite auch nicht direkt auf, sondern als $HTTP_GET_VARS["start"] oder $_GET["start"] (analog für eintrage_pro_seite).

Gruß,
  soenk.e