AJAX、PHP、および MySQL を使用して小さなクイズ/テスト エンジンを構築しています。すべてのデータ (質問、回答など) はデータベースに保存されます。
私が抱えている問題は、ログインしているユーザーが回答した質問を除外する方法がわからないため、質問が繰り返され、クイズ/テストが終わらないことです。
「次の質問」ボタンをクリックするとsubmit_answer.php
、回答を送信する (テーブルに行を追加する) AJAX リクエストが送信され、質問情報 (質問、回答など) の JSON を返すuser_answers
リクエストも送信されますが、get_question.php
回答済みの質問 (user_answers
表内の質問) を選択しないようにすることはできないようです。これが私が今持っているものです:
$question = mysql_query("SELECT *, q.id qid, q.question question_text
FROM questions q, user_answers ua
WHERE q.id != ua.question_id
AND ua.test_id = $test
AND ua.user_id = $_SESSION[userid]
ORDER BY rand()
LIMIT 1");
$q = mysql_fetch_assoc($question);
test_id
このクエリは、現在のテストの を持ち、user_id
現在のユーザーとして を持ち、テーブルにない質問を選択することになっていuser_answers
ます。しかし、明らかに、私はそれを正しく行っていません。
get_question.php
ここでファイル全体を見ることができます: http://pastebin.com/Td6mqp49
編集:
@MadaraUchiha から要求されたテーブル構造は次のとおりです。
questions
user_answers