Mam następujący problem:
Wybieram z bazy potrzebny wpis:
SELECT * FROM `employees` WHERE `ID`='10' ORDER BY `Name`
Dostaję konkretny wiersz.
Moje pytanie: Jak wybrać z bazy poprzedni i następny (względem wybranego) wiersz?
Robiłem to poprzez
SELECT MAX(`ID`) AS `PrevID` FROM `employees WHERE `ID`<10 ORDER BY `Name`
ale to zwraca rząd z największym poprzednim ID, ale wpisy są posortowane w/g nazwy a nie ID i wybieram zły wiesz (to działa tylko jak wpisy są posortowane w/g ID)
Może jest jakaś funckja zwracająca numer wiersza i wtedy może wybrać ten wiersz gdzie różnica numerów wierszy jest najmniejsza (na plusie i na minusie)?
Dopisane:
Potrzebuję wybierając z listy posortowanej w/g imion/nazwisk wybierając konkretną osobę o znanym ID dodać na stronę przyciski Poprzedni i Następny ale z zachowaniem sortowania po imionach/nazwiskach, a tak bym zmienił sortowanie po ID
Póki co mam skrypt który po wybraniu konkretnego wiersza na nowo pobiera od początku wiersze i jak trafi na ten który znalazł to ID poprzedniego ustawia jako poprzedniID, podobnie z następnym, ale jak w bazie jest 1000 pracowników ... to to strata czasu, mocy proca, transferu między skryptem a bazą - w ogóle kiszka.