In MySQL den nächsten Datensatz auswählen
Arne
- datenbank
Hallo
ich habe eine Kleine Bildgalerie in PHP geschrieben. Nun wollte ich eine funktion ein bauen die das durchschalten durch die bilder ermöglicht.
Meine Bilder sind mit dem Unix Timestamp benannt. Wie ist es nun möglich den jeweils nächsten / vorherigen Namen auszuwählen.
Da ich glaube, dass die BEschreibung so ziemlich schwer zu verstehen ist, hier der Link zu der Page wo ich das einsetzen möchte.
www.abiwards2004.de.vu dort im Bereich "Snapshots".
Wäre für jede Hilfe dankbar !!
Gruß
Arne
Hallo,
Meine Bilder sind mit dem Unix Timestamp benannt. Wie ist es nun möglich den jeweils nächsten / vorherigen Namen auszuwählen.
Am besten machst Du eine eigene Spalte mit den
Timestamps - sei es als Integer oder als MySQL-Timestamp/Datetime.
Dann musst Du nicht bei jeder Abfrage den Timestamp
aus den Dateinamen herauslesen.
(Obwohl das mit den String-Funktionen und AS schon moeglich waere.)
Vergleiche die Timestamps.
Der "naechste" ist der kleinste von allen, die einen groesseren
Timestamp haben.
SELECT * FROM Tabelle WHERE timestamp>$timestampaktuell
ORDER BY timestamp ASC
Der "vordere" ist der groesste von allen, die eine kleineren
Timestamp haben.
SELECT * FROM Tabelle WHERE timestamp<$timestampaktuell
ORDER BY timestamp DESC
(Code ungetestet.)
www.abiwards2004.de.vu dort im Bereich "Snapshots".
=> </faq/#Q-19>
Und gib bitte die direkte, echte URL an, nicht irgend
so ein peinliches Vanatu-Zeugs.
Die Seite bringt meinen Opera 5.12/Win zum Flackern,
habe keine Lust, in weiteren Browsern auszutesten.
Gruesse,
Thomas
Hallo,
Der "naechste" ist der kleinste von allen, die einen groesseren
Timestamp haben.
Das setzt voraus, dass die Timestampspalte keine zwei gleichen Werte enthält. Dafür sollte er sorgen. Insbesondere, wenn die Bilder (oder ihre Referenzen) durch ein gemeinsames Query in die DB eingetragen werden, können mehrere Datensätze den selben Timestamp haben. WIr haben ja leider nur Sekundentakt.
Wenn das nicht sichergestellt ist, würde ich lieber noch ein weiteres Kriterium hinzunehmen.
Grüße
Tom
Hi
schonmal danke für die Hilfe. Glaube ich hab nun eine Idee wie ich das machen kann.
Es ist übrigens sichergestellt, dass die Bilder einen eindeutigen Namen haben.
Gruß
Arne
Hello,
Es ist übrigens sichergestellt, dass die Bilder einen eindeutigen Namen haben.
Das ist ja schon einmal eine gute Voraussetzung, um Ordinalität herzustellen. Dir geht es ja um die Sortierfähigkeit, nach welchen Kriterien auch immer.
Grüße
Tom
Hi
hat so bestens gefunzt !!
Vielen Dank !
Gruß
Arne
hi,
ich habe eine Kleine Bildgalerie in PHP geschrieben. Nun wollte ich eine funktion ein bauen die das durchschalten durch die bilder ermöglicht.
Meine Bilder sind mit dem Unix Timestamp benannt. Wie ist es nun möglich den jeweils nächsten / vorherigen Namen auszuwählen.
innerhalb der datenbank haben die datensätze zunächst mal überhaupt keine ordnung. wenn du eine ordnung beim auslesen erzeugen willst, musst du diese explizit herstellen, in dem du ein sortierkriterium definierst.
für dein vorhaben könnte ich mir als lösung vorstellen, dass du folgendermaßen selektierst:
www.abiwards2004.de.vu dort im Bereich "Snapshots".
wie machst du hier links? siehe </faq/#Q-19>
in diesem falle aber auch zwecklos, da ich dort nur eine seite ohne inhalt zu sehen bekomme :-/
gruss,
wahsaga