Thorsten Beuth: Select ... die letzten 10 Einträge

Beitrag lesen

Hallo liebe PHP/MySQL Gemeinde und den Rest!

Ich habe ein Problem und werde deshalb mal eine Datenbank erstmal posten um es zu erklären:

+---+------+
|id |werte |
+---+------+
| 1 |      |
| 4 |      |
| 5 |      |
| 6 |      |
| 7 |      |
| 8 |      |
|10 |      |
|11 |      |
|12 |      |
|13 |      |
|14 |      |
|15 |      |
+---+------+

id besitzt auto_increment();

Das ganze soll für ein Gästebuch funktionieren. Der Nutzer postet, dadurch erhöht sich die id automatisch. Leider gibt es hin und wieder schwarze Schafe, die ich aus dem Gästebuch lösche wodurch Lücken entstehen, wie zum Beispiel zwischen 1 und 4 oder 8 und 10. Für das Gästebuch würde ich nun gerne, wegen der Übersicht halber, die Einträge auf mehreren Seiten anzeigen lassen, je Seite 10. Leider kann ich durch die Lücken nie genau 10 auf eine Seite bringen, wenn ich mich an der id orientiere. Als fehlerhaftes Beispiel gebe ich hier mal das an:
SELECT * FROM gästebuch
WHERE id > ( (SELECT MAX( id ) FROM gästebuch ) -10)

Dadurch würden ja nur 9 Einträge gezeigt werden, weil id 9 fehlt.

Gibt es also eine Möglichkeit NUR vorhande Einträge rauszupicken, z. Bsp. die letzten 10, oder aber die letzten 20 ohne die letzten 10, damit ich diese auf kompakten gleichgroßen Seiten zusammenfassen kann.

Mit dankbaren Grüßen
Thorsten