Tak, wiem że już było z 5 razy na tym forum. Jednak nie udało mi się dopasować żadnego z tych kodów, które już były dla mojego prostego (myślę) przykładu.
Problem jest taki, ze chcę pobrać najbliższe poprzednie/następne ID. Sposób Nospora wygląda obiecująco (chociaż nie wszystko rozumiem w jego zapytaniu), ale jednak nie działa według moich oczekiwań, co jest nie tak?
Oto kod:
<?php $kid = $_GET['kid']; $id = $_GET['id']; $id = $row['id']; $q = "SET @nr=0, @id='$id', @idprev=0, @idprevfound=0, @idnext=0, @idnextfound=0"; $q = "SELECT @nr := @nr +1, IF (id <> @id AND NOT @idprevfound , @idprev := id, IF (@idprevfound , NULL , @idprevfound :=1)), IF (id = @id , @idnextfound :=1, IF (@idnextfound AND NOT @idnext , @idnext := id, NULL)) FROM album_pliki WHERE kid='$kid' ORDER BY id DESC"; $q="SELECT @idprev prev, @idnext next"; $poprzedni = $rekord['prev']; $nastepny = $rekord['next']; } } ?>
kid - kategoria id (czyli do którego albumu przynależą dane pliki)
Tabelka wygląda mniej więcej tak:
id kid
1 1
2 2
3 1
4 1
Mając id=1 i kid=1, chcę aby po kliknięciu 'Następny' przeskakiwało z id=1 na id=3, a nie id=2..
Dzięki za jakiekolwiek sugestie

Pozdrawiam
-- EDIT --
Problem rozwiązany.. Dla zainteresowanych przedstawiam kod:
<?php $kid = $_GET['kid']; $id = $_GET['id']; FROM album_pliki WHERE id > '$id' AND kid='$kid' ORDER BY id ASC LIMIT 1"); $nastepny = $n['id']; } if ($nastepny == '') { $nastepny = $_GET['id']; } FROM album_pliki WHERE id < '$id' AND kid='$kid' ORDER BY id DESC LIMIT 1"); $poprzedni = $p['id']; } if ($poprzedni == '') { $poprzedni = $_GET['id']; } } ?>