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();
Другие вопросы по тегам