Отлично! Спасибо. Надо предложить заказчику. Собственно, практически тоже самое craz предлагал.Я бы рекомендовал не делать многостраничного переходящего списка рандомных товаров, а создать список просто рандомных товаров с одной ссылкой "Ещё!"

class FakeArray
{
protected $_arr;
public function __construct()
{
$this->_arr = array();
}
public function get($i)
{
if( isset($this->_arr[$i]) )
{
return $this->_arr[$i];
}
$this->_arr[$i] = $i + 1;
return $this->_arr[$i];
}
public function swap($i, $j)
{
list($this->_arr[$i], $this->_arr[$j]) = array($this->get($j), $this->get($i));
}
}
mt_srand($_SESSION['seed']);
$fakeArr = new FakeArray;
$pos = array();
for($i = 0; $i < $offset + $limit; $i++)
{
$fakeArr->swap($i, mt_rand($i, $total - 1));
if( $i >= $offset )
{
$pos[] = $fakeArr->get($i);
}
}
SELECT ... WHERE seq IN (42, 98, 2, 3, 9, 65535, 666) ORDER BY FIND_IN_SET(seq, '42, 98, 2, 3, 9, 65535, 666');
пиво?))) водка?)) давай в понедельник) я понял что ты имеешь ввиду, но нахуй пошел чтоб тебя не огорчатьАлгоритм очень прост. Мне нах.й не нужны люди, которые не в состоянии его понять.