nexte - vorige bild ID auslesen, jedoch nach Zeit

aargau

Erfahrenes Mitglied
Hallo zusammen,
ich möchte bei meiner Gallery das vorige und nexte bild auslesen, damit man eine einfache navigation hat. Die Query habe ich dazu auch schon länger im einsatz. Doch jetzt soll sich das ganze nicht mehr nach id sortieren sondern nach der zeit (timestamp)
ich habe nun schon Stunden versucht die Query so umzubauen das es geht, jedoch habe ich es einfach noch nicht geschafft. Daher hoffe ich das jemand von euch eine idee hat wie ich das Problem lösen kann...
PHP:
variabeln:
$event = "44" ; 
$id = "1412" ; 

$nextid="SELECT min(idp) FROM bilder WHERE
 (event='".mysql_real_escape_string($event)."') AND( idp > 
".mysql_real_escape_string($id).") AND ver = '2' ";


$nextid = mysql_query($nextid);
$zeile=mysql_fetch_array($nextid)
$next = $zeile[0]; 


$nextid="SELECT  max(idp) FROM bilder 
WHERE (event='".mysql_real_escape_string($event)."') 
AND( idp > ".mysql_real_escape_string($id).") AND ver = '2' ";


$nextid = mysql_query($nextid);
$zeile=mysql_fetch_array($nextid)
$next = $zeile[0];

Die zeit ist mit "time" in der DB
 
Zuletzt bearbeitet:
Also n bissl allgemeiner sieht das so aus:

SQL:
SELECT *
FROM t_bilder
WHERE 'deine Einschränkung'
ORDER BY time DESC --für andere sortierung das DESC weglassen oder ASC schreiben
LIMIT 1

Das liefert dir im Moment das Tupel vom neuesten Bild.
Hoffe das hilft dir n bissl.
 
Zuletzt bearbeitet von einem Moderator:
Die Query mag funktionieren, nur macht "ORDER BY" in Verbindung mit "LIMIT 1" keinen Sinn.

Wenn man sich lediglich auf den größten Wert beschränken möchte, sollte man "MAX()" verwenden.
z. B.
SQL:
SELECT *
FROM t_bilder
WHERE timestamp = ( SELECT MAX( timestamp ) FROM t_bilder )

Wenn man jedoch mehrere Datensätze auslesen möchte, ist "ORDER BY" vollkommen in Ordnung, nur bitte nicht in Zusammenhang mit "LIMIT 1". :)
 
Zuletzt bearbeitet von einem Moderator:
Danke euch beiden mal für die Hilfe,
jedoch wäre ich froh wenn ihr mir die query mal so schreiben würdet, damit sie bei mir geht. die query ist für mich schon eine spur zu schwirig.
 
Zurück