dedlfix: Nur jeden x-ten Datensatz finden

Beitrag lesen

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.

  1. Lade alle relevanten IDs (sortiert) => DBIDs

Dafür reichen die üblichen Klauseln (WHERE, ORDER BY).

  1. Initialisiere Zähler := 0

Dazu nehme ich eine userdefinierte Variable.
SET @zaehler=0

  1. 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";