Array_Rand всегда возвращает одно и то же значение PHP fetch array
У меня есть эта функция:
function set_spell() {
global $connection;
$query = "SELECT * FROM Spells";
$result_set = mysqli_query($connection, $query);
$spell_id_list = mysqli_fetch_array($result_set);
return $spell_id_list;
Затем я пытаюсь вывести случайный идентификатор из массива, но всегда получаю идентификатор 1.
$spell_id_list = set_spell();
echo $spell_id_list[array_rand($spell_id_list)];
Когда я запускаю этот запрос в MYSQL, я получаю список всех идентификаторов, как и ожидалось. Почему приведенный выше код не выбирает один случайным образом?
Это, наверное, глупые вопросы, которые я сам себе отошлю после того, как увижу ответ... но я застрял дольше, чем я думаю, я должен быть на нем.
Спасибо за помощь.
1 ответ
Вы просто возвращаете только один результат из вашей функции, поэтому либо создайте массив всех полученных результатов и верните то же самое, либо просто используйте order by rand()
в вашем запросе,
SELECT * FROM Spells ORDER BY RAND();