Loading...
Всем привет.
Нужна помощь по рандому.
Нужен рандом выбор случайного айди из базы данных.
И зачисление этому айди рубинов.
Рандом я сделал,но бывает рандомит например число 152 а токого айди нет.
VikZav , ORDER BY RAND() LIMIT 1
shadrvlad (21.02.2017 в 17:00)
VikZav , ORDER BY RAND() LIMIT 1

это случайный столбик из таблицы?
________
посл. ред. 21.02.2017 в 17:02; всего 1 раз(а); by VikZav
делай выборку из бд, предварительно создав пустой массив.
в цикле заноси ид юзеров в массив.
далее array_rand
shadrvlad (21.02.2017 в 17:00)
VikZav , ORDER BY RAND() LIMIT 1

так нельзя делать

$query='SELECT MAX(id) FROM tablename';
$query=mysql_fetch_row(mysql_query($query));
$max_id=$query[0];

$rand = mt_rand(1,$max_id);
Avenax (21.02.2017 в 17:02)
делай выборку из бд, предварительно создав пустой массив.
в цикле заноси ид юзеров в массив.
далее array_rand

так тоже не айс, лучше уж LIMIT $rand, 1, где $rand - рандом от количества записей
shadrvlad (21.02.2017 в 17:06)
так тоже не айс, лучше уж LIMIT $rand, 1, где $rand - рандом от количества записей

Проще для головы и рук, но так не проще машине.
Если в таблице больше, чем 4-5 тысяч строк, то ORDER BY RAND() будет работать очень медленно.
Гораздо более эффективно будет выполнить один запрос:


$array = array();
$query = mysql_query("SELECT `id` FROM `table`");
while ($row = mysql_fetch_assoc($query)) {
$array[] = $row['id'];
}
Avenax , пост 7, где ORDER BY RAND()?
shadrvlad , в посту №2.
Онлайн: 5
Время:
Gen. 0.1249
(c) Bym.Guru 2010-2026