PHPを使用して質問回答フォームを実装する必要があります。オプション値がランダムになるように、オプション値とともに質問を選択する必要があります。
QuesttableからのSelectquest、option1、option2、option3など。リクエストごとにランダムな順序でoption1、option2、option3を取得するにはどうすればよいですか、どのような方法でもmysqlを使用して実装できます。?
PHPを使用して質問回答フォームを実装する必要があります。オプション値がランダムになるように、オプション値とともに質問を選択する必要があります。
QuesttableからのSelectquest、option1、option2、option3など。リクエストごとにランダムな順序でoption1、option2、option3を取得するにはどうすればよいですか、どのような方法でもmysqlを使用して実装できます。?
使用できますRAND()
SELECT * FROM table_name ORDER BY RAND() LIMIT 5
すでに述べたようにテーブルのデザインを変更する必要がありますが、この非常に大雑把なものを試すことができます (ただし、大雑把なデザインは大雑把なソリューションにつながります)
SELECT
quest,
CASE rval WHEN 0 THEN option1 WHEN 1 THEN option2 WHEN 2 THEN option3 END option_1,
CASE rval WHEN 0 THEN option2 WHEN 1 THEN option3 WHEN 2 THEN option1 END option_2,
CASE rval WHEN 0 THEN option3 WHEN 1 THEN option1 WHEN 2 THEN option2 END option_3
FROM (
SELECT
*,
FLOOR( RAND() * 3 ) rval
FROM tbl_answers ) tmp
そしてお願いします:「家でそんなことしないで!」
MySQL クエリを使用してこれを行うことはできませんが、php で出力をランダム化することはできます。オプションを空の配列に書き込み、配列をランダム化します。
MySQL でそれを行う場合は、2 つのテーブルを作成する必要があります。1 つは質問を含み、もう 1 つは回答を含み、行ごとに 1 つの回答が含まれます。
次に、次のことができます。
SELECT option FROM tbl_answers WHERE questionId = X ORDER BY RAND()
いいえ。mysql だけではできません。
SELECT quest,option1,option2,option3
PHP経由でアンドシャッフルを実行できます