かなり簡単なはずの SELECT クエリに問題があります。簡略化された背景は次のとおりです。
データベースに 2 つのテーブルがあります。TABLE1 という名前の 1 つのテーブルには、[QuestionID]、[Question]、[Answer] の 3 つのフィールドが含まれています。TABLE2 という名前の 2 番目のテーブルには、[UserID] と [QuestionID] の 2 つのフィールドが含まれています。
基本的に、このページの機能は、ユーザーが質問に正しく答えると、ユーザー名と質問 ID が TABLE2 に挿入されることです。TABLE2 は、ユーザーが回答されていない質問のみに回答できるように、回答済みの質問をページから除外するために使用されます。
したがって、SELECT クエリは、「TABLE2にないTABLE1のすべての質問を表示する」ことで機能するはずです。これはとても簡単に聞こえますが、私には理解できません。
これが私のクエリです:
$answered = mysql_query("SELECT QuestionID FROM TABLE2 WHERE Username='TESTING'");
while ($answered1 = mysql_fetch_array($answered))
{
$QuestionsToDisplay = mysql_query("SELECT * FROM TABLE1 WHERE 'QuestionID' NOT IN ('$answered1')");
}
}
私も試しました:
$QuestionsToDisplay = mysql_query("SELECT * FROM TABLE1 WHERE 'QuestionID' !='$answered1'");
どちらのインスタンスも、4 を表示すべきときに 1 つの結果を表示します。
正しいデータが返されたので、最初のクエリを 'while' ステートメントに入れました (テスト目的で TABLE2 に 2 つのエントリがあり、これが echo ステートメントに表示されます)。
それで、私が間違っていることは何か分かりますか?
ありがとう!!