Tom: mysql tabelle durchlaufen

Beitrag lesen

Hello,

wie kann ich eine tabelle per klick durchlaufen, also zum nächsten Datensatz gelangen, wenn die datensätze nicht nummeriert sind?

Das ist gar nicht trivial, insbesondere dann, wenn während des Durchlaufens der Tabelle an ihr auch Änderungen erlaubt sind. Das können Änderungen durch andere Benutzer sein, aber auch solche, wie Du sie besschrieben hast, also durch denselben Benutzer.

Einen "nächsten Datensatz" gibt es in einer SQL-Datenbank nur dann, wenn ein entsprechendes Sortierkriterium (z.B. ein Index auf eine oder mehrere Spalten) benutzt wird. Dann können die Datensätze entsprechend ihrer voreingestellten Sortierung bereitgestellt werden.

Das Problem dabei ist das Duplicate-Management.

Wenn Du z.B. mehrere Müller_s in deiner Tabelle hast, möchtest jetzt aber sortiert über den Nachnamen (also die Spalte, die 'Müller' enthält) arbeiten, dann kann es Dir passieren, dass sich dein Tool beim Weiterrücken aufhängt, weil sich (zufällig) ein zirkulärer Verlauf beim Abarbeiten ergibt. Das liegt daran, dass die Reihenfolge, in der deine 17 Müller_s angezeigt werden bei jedem Request eine andere sein kann.

Um dies zu vermeiden, baut man sich einen Kombinations-Index aus der Suchspalte und einer Unique-Spalte, vorzugsweise dem Primary Key. Der PK rückt dabei im Kombinations-Index an letzte Stelle. Somit ist sichergestellt, dass der Nachfolger von 'MULLER'+'2367' nicht 'MULLER'+'1222' sein kann, deine Abfrage der Müller_s also immer in derselben Reihenfolge erscheint.

Den Rest müsstest Du jetzt selber hinbekommen:

  • Suchspalte festlegen

-- neuen Aufsetzpunkt bestimmen
-- Abfrage durchführen
-- Listengrenzen merken (Suchspalte und Unique-Spalte)

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de