Тогда в карусели нужен ещё сегмент - сегмент блоков готовящихся к переработке. И связывать их как-то с неадекватным клиентом. Я так понимаю через сессию. При этом силы разработчика будут тратится на сомнительный сервис. Он не нужен ни товародателям, ни клиентам. Товародатель старается как можно большему кол-ву посетителей засветить товар в надежде клика. Посетитель смотрящий рандомный список хочет видеть всё новые товары. Хотя и здесь есть сомнения. Всё же за покупками ходят целенаправленно.
Я бы рекомендовал не делать многостраничного переходящего списка рандомных товаров, а создать список просто рандомных товаров с одной ссылкой "Ещё!"
хыхы ваще тогда красиво(люблю извращения)))) получается смотри
заходим на страницу) рисуем 1 2 - запоминаем [First] = array(Id`s From First Page) - жмем 2(выбираем по рандому, но только не [First]) - соответственно запоминаем [Second]=array(Id`s From Second Page) рисуем 1 2 3 - можно как нить обыграть появление новой страницы хоть тоже мигание)))
Тема интересная. Сам при возникновении такой задачи сделал кнопку. Но как пользователь, мне кажется это не очень удобным именно из-за того, что иногда возникает потребность возвращаться назад. Чуть попозже постараюсь показать один из возможных вариантов, храня в сессии только seed для генератора псевдослучайных чисел.
SELECT ... WHERE seq IN (42, 98, 2, 3, 9, 65535, 666) ORDER BY FIND_IN_SET(seq, '42, 98, 2, 3, 9, 65535, 666');
От общего кол-ва записей ($total) скорость не зависит. Есть зависимость скорости от номера страницы (т.е. и смещения $offset). Чем дальше, тем медленней из-за того, что генерируются все предыдущие элементы перестановки. Разумно просто ввести некоторое ограничение на номер страницы (дальше 100-й, к примеру, не пускать) и всё.
ваще есть такая возможность создать сначала рандомный список оперируя кол-вом айдишников, и на каждой странице его дергать менять можно по крону или в зависимости от времени создание этого списка замет микросекунды, хранить можно в темповой таблице или файле
Вы просто извините правда но подходите к решению задачи с точки зрения кодеров - программист решает задачу на бумажке а уж потом ее переводит в код. Еще раз извиняюсь - тема хорошая дала разминку мозгу