mam pewien rekord, pewien produkt o pewnym id

Chce uzyskać z bazy danych produkt poprzedni i kolejny, To znaczy stojący przed i za produktem, który właśnie mam.
Inaczej mówiąc
1) Wyświetlam listę produktów:
"SELECT * FROM products ORDER by COS method by COS"
2) Wchdze w pewien produkt z listy produktów. Kiedy otworzyłem karte z towarem mam informacje jak wyglądało zapytanie w liscie kategori tz, wedle jakiej kolumny było sortowanie i jakiej metody użyto.
3) Chce wyświetlić linki do poprzedniego i kolejnego produktu (biorąc pod uwagę zapytanie listy kategorii)
sposób, który odrazu mi sie nasunął na myśl:
- potworzyć zapytanie już na karcie z towarem, wyniki wrzucać do tablicy, a potem porownać sobie i wxioxc poprzedni i nastepny element.
Pewnie da się to zrobić jakoś prościej, tylko nie wiem jak.