Дело не в mysql, я неточно выразил свои сомнения в начале темы. Плохо то, что приходится вычислять позиции каких-то товаров два раза: первый раз на странице списка, второй раз - при получении страницы элемента.по делу, да - лишний запрос по такой выборке меня не напрягает
этот вариант уже был предложен и отметёнесли научить скрипт выводить записи на запрос типа ?before=[ID], ?after=[ID],
те на сервере писать where id<$_GET['before'] limit 1 или where id>$_GET['after'] limit 1
то все получится и без дополнительного запроса!
Да, параметры получения списка придётся где-то хранить. Изначально все они (включая строку поиска) есть в УРЛ. Проще всего, видимо, хранить именно УРЛ начального списка - в куки или в сессии, а перед генерацией страницы элемента получать (с помощью сохранённого УРЛ) исходный список и находить в нём next-previous.на самом деле там вырастет офигенный хвост а не одна переменная, тут же надо помнить параметры списка еще