Ich verwende Moodle Multitrack Test für die Entwicklung einer Karriere Assessment-Test. Ich möchte das Plugin ändern, um zufällige Fragen zu zeigen, eine Frage nach der anderen. Also, wenn es insgesamt 10 Fragen gibt, dann sollte es zuerst eine zufällige Frage zeigen und nachdem es gespeichert ist, dann zeige eine zufällige Frage von den restlichen 9 Fragen und so weiter. Fragen werden in einer Tabelle gespeichert namens ‚magtest_question‘, deren Felder sind:Zeigen Sie zufällige Fragen aus einer Tabelle ohne Wiederholung
id(bigint),
magtestid(bigint),
questiontext(longtext),
questiontextformat(mediumint),
sortorder(bigint).
Die Fragen werden sortiert auf der Grundlage der ‚sortorder‘ Spalte. Also habe ich versucht, die Abfrage zu ändern, um nach dem Zufallsprinzip zu sortieren.
SELECT * FROM {magtest_question} WHERE magtestid=? ORDER BY RAND()
Aber es wird manchmal wieder die gleiche Frage zeigen. Ich möchte die Fragen vermeiden, die versucht werden. Wie kann ich dies mit SQL-Abfrage erreichen. Bitte helfen Sie.
Dies wird nicht die gleiche Frage zeigen wieder beantwortet. Dies kann verwendet werden, um ein Array von Fragen zu erstellen, die zufällig angeordnet sind. Der gleiche Effekt kann zum Beispiel mit der Shuffle-Funktion von PHP erreicht werden. – Strawberry
+1 für Erdbeeren antworten. Überprüfen Sie, ob in Ihrer Datentabelle doppelte Werte vorhanden sind. Die angegebene Abfrage sollte keine doppelten Werte erzeugen. – Djeramon
@Djeramon Ich habe mit 5 Fragen versucht, und es zeigt wieder die gleiche Frage. – user1690835