Find forrige, aktuelle og næste id
Jeg sidder og er ved at lave et lille "galleri" i PHP/MySQL til mine private fotos.Alle billeder ligger i en tabel hvor image_id er primary key.
Det jeg søger er et sql-kald, der ud fra et givent id finder det "lavere" og "højere" ID såvidt at det findes hvis sql-kaldets where-betingelser opfyldes (se nedenfor - det er afgrænset af dir_id). Meningen med det er, at når man klikker sig ind på et billede, skal man få et thumbnail af forrige og næste billlede i mappen.
Indtil videre har jeg lavet denne løsning:
SELECT
i.image_id,
i.filename,
i.note,
u.images_width_small,
u.images_width_large
FROM
images AS i,
users AS u
WHERE
i.user_id = '".$_GET['u_id']."' AND
i.image_id <= '".($_GET['image_id']+1)."' AND
i.image_id >= '".($_GET['image_id']-1)."' AND
u.user_id = i.user_id AND
i.dir_id = '".$_GET['dir_id']."'
Den virker også fint for det meste! - Men hvis der er "klumper" i id'erne - fx hvis billederne i mappen med dir_id = 3 har image_id'erne 3, 5 og 7 - så virker det ikke udfra ovenstående eksempel. Så vil den ikke finde billede 3 og 7 selvom de rent faktisk kommer før og efter billede 5 i den mappe som billede 5 ligger i.
Jeg er godt klar over jeg bare kan lave tre sql-kald. Et med =, et med < og limit 1 og et med > og limit 1 - men hvis man kan gøre det i et kald ville det jo være federe! =)
Håber i forstår mit spørgsmål.
På forhånd tak.
- Rasmus
