-1

私はこの機能を持っています:

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;

次に、配列からランダムな ID を出力しようとしますが、常に ID 1 を取得します。

$spell_id_list = set_spell();
echo $spell_id_list[array_rand($spell_id_list)];

このクエリを MYSQL で実行すると、期待どおりにすべての ID のリストが取得されます。上記のコードがランダムに選択しないのはなぜですか?

これはおそらく、答えを見た後に自問自答するようなばかげた質問です...しかし、私が考えているよりも長く立ち往生しています。

助けてくれてありがとう。

4

1 に答える 1

2

関数から単一の結果のみを返すだけなので、フェッチされたすべての結果の配列を作成して同じものを返すか、単にrand()クエリで order by を使用します。

SELECT * FROM Spells ORDER BY RAND();
于 2013-05-12T05:00:43.307 に答える