Guido: Seitenaufteilung

Hallo,

ich programmiere gerade ein Gästebuch und komme an einer Stelle nicht weiter.
Die Einträge werden aus einer MySQL-Datenbank geholt und auf Seiten aufgeteilt. Soweit funktioniert alles.

Nun möchte ich unten anzeigen lassen auf welcher Seite man sich befindet, und drei Seiten vor der aktuellen und drei danach verlinken.
Also ungefähr so: 12 13 14 15(aktuelle Seite) 16 17 18
Wobei man natürlich bedenken muss, dass auf Seite 1-3 keine Links voranstehen dürfen.
Mit ganz vielen ifs und elses würde ich das hinbekommen, aber gibt es da nicht noch einen eleganteren Weg?

Gruß

  1. Tach.

    Nun möchte ich unten anzeigen lassen auf welcher Seite man sich befindet, und drei Seiten vor der aktuellen und drei danach verlinken.

    Mit ganz vielen ifs und elses würde ich das hinbekommen, aber gibt es da nicht noch einen eleganteren Weg?

    Um ein paar Fallunterscheidungen wirst Du vermutlich nicht herumkommen. Nur Mut! ;)

    Wenn Du eine feste Anzahl von Seiten vor und nach der aktuellen hast, kannst Du Dir daraus schon mal den Index der ersten und letzten Seite errechnen, die Du verlinken möchtest. Falls diese Werte den Rahmen sprengen (also z. B. als erste Seite -1 herauskommt oder als letzte 100, obwohl Du nur 99 Seiten hast), paßt Du die errechneten Grenzen den tatsächlichen an.

    Anschließend kannst Du in einer Schleife von der Unter- zur Obergrenze laufen und jeweils eine Seite verlinken. Wenn Du zwischendurch auf die aktuelle Seite stößt, behandelst Du diese entsprechend gesondert.

    Eventuell möchtest Du noch Links für die vorige, folgende, erste und letzte Seite ergänzen, um die Navigation durch den Seitenwald etwas komfortabler zu gestalten. Das sollte dann auch kein Problem mehr sein.

    --
    Once is a mistake, twice is Jazz.
    1. Vielen Dank.
      Das sind wirklich gute Denkansätze für mich.

      Gruß

      1. Hello,

        Vielen Dank.
        Das sind wirklich gute Denkansätze für mich.

        Eien Fertiglösung findest Du unter
        http://selfhtml.bitworks.de/artikel_locking/show_visitors.php

        Der Server schläft nur gerade mal wieder ein :-((

        Harzliche Grüße aus
        Sankt Andreasberg
        und Frohes Neues Jahr

        Tom

        --
        Nur selber lernen macht schlau

        1. Super, danke!

  2. Hi,

    Nun möchte ich unten anzeigen lassen auf welcher Seite man sich befindet, und drei Seiten vor der aktuellen und drei danach verlinken.
    Also ungefähr so: 12 13 14 15(aktuelle Seite) 16 17 18
    Wobei man natürlich bedenken muss, dass auf Seite 1-3 keine Links voranstehen dürfen.
    Mit ganz vielen ifs und elses würde ich das hinbekommen, aber gibt es da nicht noch einen eleganteren Weg?

    Eine for-Schleife und darin eine if-Abfrage, plus ein paar arithmetische Operationen, reichen aus, wenn man es halbwegs geschickt macht.

    MfG ChrisB