echo $begrüßung;
Ermittle die Seite, auf der der Datensatz mit der ID %ID% zu finden ist.
Bisherige Lösung:
Die ist doch schon mal nicht ganz verkehrt. Ich tät sie nur der Datenbank unterschieben. Vorausgesetzt, MySQL ORDERt zuerst und berechnet dann den @zaehler. Das solltest du mal mit ein paar unsortiert in der DB stehenden IDs probieren.
- Lade alle relevanten IDs (sortiert) => DBIDs
Dafür reichen die üblichen Klauseln (WHERE, ORDER BY).
- Initialisiere Zähler := 0
Dazu nehme ich eine userdefinierte Variable.
SET @zaehler=0
- FOR %Y% IN DBIDs
4-1) Erhöhe Zähler
SELECT @zaehler:=zaehler+1 AS zaehler, ... -- zur Not noch eine Spalte (pageberechnung) AS page
4-2) IF %Y% = %X% THEN RETURN CEILING( Zähler / DatensätzeProSeite )
4-3) IF %Y% > %X% THEN RETURN Not-Found-till-page: CEILING( Zähler / DatensätzeProSeite )
... HAVING ichweißdassdudasselberhinbekommst :-)
MySQL ist ja nicht so streng wie andere Systeme und lässt HAVING auch ohne GROUP BY gelten. Mit WHERE ausblenden geht nicht, weil zu dem Zeitpunkt der @zahler noch nicht berechnet ist.
echo "$verabschiedung $name";