私はMCQモジュールで作業しており、データベースからランダムな質問を取得する必要があります。問題は、重複しているようです。PHPで一意の乱数を生成するにはどうすればよいですか?
答えて
データベースからフェッチする場合は、SQLを使用してジョブを実行します。例えば
SELECT * FROM questions ORDER BY RAND() LIMIT 20
これ以上の情報がなければ、私は初歩的な解決策を提案することができます。 (しかし、あなたの質問をより多くの情報で更新してください)
私はユーザーがいると推測しています。
ユーザーがいない場合は、SESSION_ID
をそのユーザーのユーザー識別子として使用できます。
初めて質問を取得してユーザーが回答すると、保存する必要のある情報を保存してから、ユーザーのIDと質問のIDをテーブルに保存します。
次の質問をフェッチするときに、この新しいテーブルに質問IDがあるかどうかを確認します。
質問をランダムに並べ替えるのではなく、質問をシャッフルしたいと思うように聞こえます。だからあなたのアルゴリズムは、このようなものになります。
- 表示したいすべての質問(または質問キー)を取得します。
- チェックアウトシャッフルのためのシャッフルため
でそれらに/表示を取得し、それらをシャッフル:MySQLを使用していて、データの合理的な少量を持っている場合は、次のことができFisher-Yates shuffle algorithm
でも参照RAND()
他のRDBMSにも同様の構文があります。たとえば、MSSQLでは「ORDER BY NEWID()」、Oracleでは「ORDER BY DBMS_CRYPTO.randominteger」を使用できます。 –
BY Do stateless random number generators exist?
擬似乱数の任意の列をORDERを使用します繰り返します。擬似乱数をどうやって取得するのですか?
あなたが行の非常に多くを持っている場合は、クエリでフェッチその後、0と1の間の数値を格納し、テーブルに列を追加することができます:
20のランダム質問(繰り返しなし)をフェッチSELECT * FROM `mytable` WHERE `randcolumn` > RAND() LIMIT 20
これは、データベースがテーブル全体をランダムに並べ替える必要がなく、わずか20行しか用意できないことを意味します。
- 1. PHPで暗号で安全な乱数を生成するにはどうすればよいですか?
- 2. Postgresqlで一意の乱数を固定長で生成する
- 3. Expression Engine 2で一意のIDを生成するにはどうすればよいですか?
- 4. ゼロに近い乱数を生成するにはどうすればよいですか?
- 5. C#プロジェクトテンプレートのインスタンスごとに一意のIDを生成するにはどうすればよいですか?
- 6. CUDA FORTRANで乱数を生成するにはどうすればよいですか?
- 7. [0,1]から乱数を生成するにはどうすればよいですか?
- 8. どのようにC#で乱数を生成しますか?
- 9. モデルからhtmlタグの一意のdom idを生成するにはどうすればいいですか
- 10. 目的のCで一意の乱数を生成していますか?
- 11. PHPで乱数を生成する
- 12. PHPの一意の乱数
- 13. grepとの一意の一致の数を出力するにはどうすればよいですか?
- 14. Grails:わかりやすい一意の乱数を生成する方法
- 15. SQLAlchemyでは、一意のペアを作成するにはどうすればよいですか?
- 16. AutoFixture 3で生成される整数は一意ですか?
- 17. javascriptでオブジェクトの一意のインスタンスを作成するにはどうすればよいですか?
- 18. PHPで乱数を選択するにはどうすればよいですか?
- 19. Javaで乱数のarraylistを作成して表示するにはどうすればよいですか?
- 20. Perlで一意の識別子を作成するにはどうすればよいですか?
- 21. 乱数のセキュリティ強度はどういう意味ですか?
- 22. iPhone | NSTimeIntervalから一意のキーを作成するにはどうすればよいですか?
- 23. 一意の時間間隔でレコード数を取得するにはどうすればよいですか?
- 24. mysqlフィールドを一意にするにはどうすればいいですか?
- 25. TOMCATでスタックトレースを生成するにはどうすればよいですか?
- 26. デスクトップアプリケーションでファイルプレビューサムネイルを生成するにはどうすればよいですか?
- 27. simple_formでキャンセルボタンを生成するにはどうすればよいですか?
- 28. より良い乱数生成PHP
- 29. PHPでシングルトンを作成するにはどうすればよいですか?
- 30. javascript生成データからPHP変数に値を保存するにはどうすればいいですか?
編集競争条件の謝罪RichB – ryeguy
@ryeguy:私はより良い編集があると思うので、私は転がりました。私のことを気軽に付け加えてください。 – GEOCHET
あなたの質問は頻繁に変更されるのですか? –