[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод случайного числа из массива
intranet
Не могу понять как сделать следующее:

Необходимо брать из базы определенные числа, создавать массив из них и брать одно случайное число из массива.

Помогите пожалуйста реализовать.



Спустя 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 мая smile.gif

Спустя 37 минут, 46 секунд (8.05.2011 - 22:32) inpost написал(а):
intranet
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? Какой вопрос, такой ответ smile.gif

Спустя 12 минут, 47 секунд (8.05.2011 - 23:40) Joker написал(а):
inpost
Нет почему случайное число из массива

Вот массив:

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
Ну как бы сказать, забыл про эту команду smile.gif

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

Экономист smile.gif

Спустя 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)) {
вывод твоей информаций
}



вот самый быстрый способ
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.