помогите разобраться random

Статус
В этой теме нельзя размещать новые ответы.

droit74

Постоялец
Регистрация
20 Сен 2009
Сообщения
55
Реакции
0
есть таблица с вопросами одно из полей которое 'id'
нужно выбрать случайным образом из этой таблице 5 вопросов так чтобы они не повторялись.
зы первый рас работаю с random в php :confused:
 
для базы мускул так
SELECT * FROM Table_Vopros ORDER BY RAND() LIMIT 5;
 
тут у него может быть трабл! число RAND может быть Больше чем ID ! в следствии чего ОШИбка либо Ограничивать Rand-значение, чтоб было не более чем Id в базе!
==========================
$query = "select count(*) as count from data";
$result = mysql_query($query, $link) or die(mysql_error());
$row=mysql_fetch_object($result);
$total = $row->count; // получаем число записей


$offset = rand(0, $total); // генерим случайное число, не более чем кол-во записей!
================================================
А вот теперь мы 100 процентно получим случайнуую записать по id которая есть в базе!
 
посмотрите здесь

есть готовые примеры + общие "оценки" производительности и рациональности той или иной реализации...

и как видно из первого поста, решение:
PHP:
SELECT * FROM Table_Vopros ORDER BY RAND() LIMIT 5;
является далеко не лучшим
 
есть таблица с вопросами одно из полей которое 'id'
нужно выбрать случайным образом из этой таблице 5 вопросов так чтобы они не повторялись.
зы первый рас работаю с random в php :confused:

SELECT id FROM table ORDER BY rand() LIMIT 5
Понятно, что записей в таблице должно быть более 5-ти...

Добавлено через 2 минуты
А вот теперь мы 100 процентно получим случайнуую записать по id которая есть в базе!

Ростислав, Ордер Бай Ранд() - если не работает, это трабл МайсКЛЛ тим, а ни как не юзера. Давать ссылку на документацию? И причем тут ид и ранд()? Оно не взаимосвязано ниразу.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху