AllesMeins: Mysql: Durch Werte "blättern"

Hiho,

ich möchte gerne meine Besucher durch eine Reihe von Nachrichten blättern lassen. Dazu suche ich mir zur Zeit aus der Datenbank einfach die nächste Nachricht mit dem nächst niedrigeren Zeitstempel aus. Das klappt soweit auch ganz gut, solange zwei Nachrichten nicht die selbe Zeit haben. In diesem Fall wird (logischerweise) eine übersprungen. Nun befürchte ich, dass ich irgendwie den Wald vor lauter Bäumen nicht mehr sehe. Wie kann ich es schaffen auch bei gleichem Zeitstempel durch alle Nachrichten zu blättern und dabei nicht irgendwie in eine Schleife gerate (wenn ich zum beispiel nach kleinergleich suchen würde). Irgend eine Idee?

Grüsse

Marc

  1. Hi,
    1. du kannst die Uhrzeit mit in den Zeitstempel nehmen.
    2. Du liest die Tabelle aus, sortierst dabei nach Timestamp und z.B. Überschrift und verlinkst dann den nächsten Beitrag per ID.

    1. Hello,

      1. du kannst die Uhrzeit mit in den Zeitstempel nehmen.

      Die ist bereits Bestandteil des Zeitstempels

      1. Du liest die Tabelle aus, sortierst dabei nach Timestamp und z.B. Überschrift und verlinkst dann den nächsten Beitrag per ID.

      Man muss das Suchkriterium zu einem primären Schlüssel machen (den primären Schlüssel einbeziehen), also Duplicates verhindern. Nur das ermöglicht das "Blättern" in einer nachvollziehbaren Ordnung. Allerdings können in dynamischen Datenbetänden auch hier Sätze unberücksichtigt bleiben, wenn diese nämlich erst entstehen, wenn man bereits an deren Position vorbeigeblättert hat.

      Wenn es also um eine Vorgangsbearbeitung geht, bei der regelmäßig alle Datensätze kontrolliert werden sollen, kann man das nur durch Festlegung eines "Buchungsschnittes" erreichen. Alle DS, die  vor diesem Zeitpunkt (oder in einem bestimmten Zeitraum) angelegt wurden, werden dann berücksichtigt. Die neu hinzugekommenen werden dann bei der nächsten Bearbeitung berücksichtigt.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  2. Ganz andere Ansatz

    hänge an deine Query in etwa folgendes an:

    ORDER BY timestamp DESC LIMIT nr,1

    das sollte dir immer genau einen Beitrag raussuchen.

    timestamp sollte eine einfache Nummer sein, ich nehme dazu die Sekunden seit dem 1.1.1970, denn dafür gibt es in PHP einige Funktionen, die aus einem Datum diese Zahl ermitteln und umgekehrt.

  3. Hello,

    dieses Problem hat man generell bei SQL-Datenbanken, wenn man als Ordnungskriterium einen Duplicate-Key zulassen muss/will. Der Zeitstempel ist nun so ein Duplicate-Key, also kein Primärschlüssel, sondern einfach nur ein zum "Key" erhobener Feldwert.

    Das Problem kannst Du in gewisser Weise lösen, wenn Du die Sortierung auf

    <timestamp> + <id>

    einstellst.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau