Regina Schaukrug: AUTO_INCREMENT müsste 2x gebraucht werden

Beitrag lesen

Einführendes Gemecker: Das junge Volk lernt schlaues Zeug wie MVC aber nicht mehr die echten Basics. Einführende Erläuterung: Zu den "echten Basics" zählt die strikte Trennung zwischen Daten, Programm und Darstellung. Berechenbare Darstellungsoptionen, die sich womöglich sogar von Benutzer zu Benutzer oder Sitzung zu Sitzung (Bildschirmgröße -> Anzahl der Resultate je Seite) ändern können, haben definitiv nichts in der Datenbank zu suchen. Das betrifft hier also die Seitennummer und die Seitenposition.

Vorab: Es gibt auch keinen haltbaren Grund auf das "3. Resultat der 5. Seite" zugreifen zu wollen. Wenn man sich einen bestimmten (bekannten) Datensatz aus der Menge herausklauben will, dann benutzt man dessen ID.

Doch brauche ich noch ein weiteres Feld das weiterzählt und die Position auf der Seite bestimmt.

Nein. Braucht Du nicht.

Vorliegend können die sich ändern und man die nämlich leicht und sehr schnell bei der Ausgabe berechnen. Ich formuliere es mal in PHP:

$AnzahlPerSeite = 10; #variablel, config, userdefined ...

$counter = 0; #Zähler der aus der Datenbank wieder gegebenen Werte, ID wird nicht benutzt, da
              #Autoincrement (Lücken!)

foreach () {# wie auch immer Du die Daten aus dem Resultset holst

    $SeitenNr  = floor( $counter / $AnzahlPerSeite );
    $SeitenPos = $counter % $AnzahlPerSeite;
    
    # was auch immer hier folgen soll
    $counter ++;
}

Für die Anpassung der Seitennummer und der Seitenposition an den Geschmack von Nichtprogrammierern kannst Du beiden gerne bei der Ausgabe eine 1 addieren. Sonst beginnen beide bei 0 zu zählen.