Необходимо брать из базы определенные числа, создавать массив из них и брать одно случайное число из массива.
Помогите пожалуйста реализовать.
Спустя 8 минут, 10 секунд (8.05.2011 - 21:46) alex12060 написал(а):
$sql = mysql_query("SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1");
Если я понял правильно, то так будет проще.
Спустя 5 минут, 27 секунд (8.05.2011 - 21:52) intranet написал(а):
Блин точно.) Я банально не додумался.) Спасибо что напомнили.) С праздником кстати.)
Спустя 2 минуты, 21 секунда (8.05.2011 - 21:54) alex12060 написал(а):
intranet
Спасибо, но у нас пока еще 11 вечера 8 мая
Спасибо, но у нас пока еще 11 вечера 8 мая

Спустя 37 минут, 46 секунд (8.05.2011 - 22:32) inpost написал(а):
intranet
Единственное не уверен, что функция rand сработает в такой конструкции. Если нет, тогда разбей на несколько этапов, сначала count, потом rand, потом вывод.
echo $array[rand(0,(count($array)-1))];
Единственное не уверен, что функция rand сработает в такой конструкции. Если нет, тогда разбей на несколько этапов, сначала count, потом rand, потом вывод.
Спустя 4 минуты, 25 секунд (8.05.2011 - 22:36) Joker написал(а):
inpost
а если ключи будут не попорядку?) лично я обажаю в ключ совать идентификатор записи.
а если ключи будут не попорядку?) лично я обажаю в ключ совать идентификатор записи.
shuffle($array);
$random_elemen = array_pop($array);
Спустя 51 минута, 6 секунд (8.05.2011 - 23:28) inpost написал(а):
Joker
Такой же вопрос, а если он программирует на Ruby? Какой вопрос, такой ответ
Такой же вопрос, а если он программирует на Ruby? Какой вопрос, такой ответ

Спустя 12 минут, 47 секунд (8.05.2011 - 23:40) Joker написал(а):
inpost
Нет почему случайное число из массива
Вот массив:
случайное число, в впоросе не было скзанно, что ключ это порядковые номер B)
Нет почему случайное число из массива
Вот массив:
1=>5
2=>3
10=>1
случайное число, в впоросе не было скзанно, что ключ это порядковые номер B)
Спустя 2 минуты, 31 секунда (8.05.2011 - 23:43) neadekvat написал(а):
Цитата (inpost @ 8.05.2011 - 23:32) |
echo $array[rand(0,(count($array)-1))]; |
Почему не array_rand?
Цитата (alex12060 @ 8.05.2011 - 22:46) |
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1 |
Достаточно LIMIT 1, то же самое будет, а текста меньше.
Спустя 1 час, 23 минуты (9.05.2011 - 01:06) inpost написал(а):
neadekvat
Ну как бы сказать, забыл про эту команду
Ну как бы сказать, забыл про эту команду

Спустя 10 часов, 9 минут, 29 секунд (9.05.2011 - 11:15) alex12060 написал(а):
neadekvat
Экономист
Экономист

Спустя 12 часов, 27 минут, 27 секунд (9.05.2011 - 23:43) linker написал(а):
При ORDER BY RAND() никакой LIMIT не спасёт от тормозов при больших объёмах данных.
Спустя 1 день, 13 часов, 37 минут, 31 секунда (11.05.2011 - 13:20) okapo написал(а):
$offset_result = mysql_query(" SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table` ");
$offset_row = mysql_fetch_object( $offset_result );
$offset = $offset_row->offset;
$result = mysql_query(" SELECT * FROM `table` LIMIT $offset, 1 " );
while($res=mysql_fetch_array($result)) {
вывод твоей информаций
}
вот самый быстрый способ