Moin!
ich hätte natürlich dazuschreiben sollen, dass ID der Primary Key der Tabelle ist. Auf Primary Keys liegt auch bei MySQL immer ein Unique Index, der automatisch verwendet wird, wenn das Feld angesprochen wird. Einzige Ausnahme: order by rand()
Egal wie deine ID gestaltet ist: Wenn du ein simples "SELECT * FROM tabelle" machst, kriegst du eine zufällige Ordnung. Das wird durch den Zusatz "WHERE ID > $ID" nicht besser. Im letzten Schritt begrenzt du die Ausgabe dann auf einen Eintrag. Bei dem ist aber auch nur sichergestellt, daß dessen ID größer ist als die derzeit dem Skript bekannte ID. Du hast _keine_ Garantie, daß es die nächsthöhere ID ist.
Bei einem "normalen" Textfeld sieht das eben anders aus, weil man hier Duplicate-Management berücksichtigen muss.
Wenn die Datenbank sortiert, wird sie immer zum gleichen Ergebnis kommen. Entsprechend kannst du mit "LIMIT x,y" einen Ausschnitt dieser definierten Liste ansprechen (auch einen einzigen Eintrag).
Ganz schöner Aufwand, nur weil die bei MySQL so puristisch sind, und keine Befehle für Next oder Previous eingebaut haben. Werde ich doch mal vorschlagen. Aber heute Abend nicht mehr. Jetzt bin ich zu müde..
Hm, ich habe von angeblichen SQL-Kommandos wie "NEXT" und "PREVIOUS" noch nichts gehört. Auch eine kurze Suche bei Google hat nichts ergeben. Kann es sein, daß du dir da was ausdenkst, was es garnicht geben kann. Würde ich mal vermuten, wenn ich deine Idee mit meinen Kenntnissen über SQL-Datenbanken im allgemeinen und mySQL im speziellen vergleiche.
- Sven Rautenberg