2009-07-17 11 views
0

テーブルqotwVote1aフィールドがQuestionId, MemberId, Vote1aの場合、QuestionIdMemberIdが主キーです。PHPのSQLクエリで問題が発生しました

質問を実行してメンバーを見つけたり、質問に投票したりしませんか。そうでない場合は、変数$j0に設定します。そうであれば、1に設定します。

私はこのクエリを書いています。しかし、それは私にエラーを与えている。誰かがそれを見ることができますか?さらに何かを求めたいのなら、私に知らせてください。

$questionId=57; 
$id="zee"; 
$result2 = mysql_query(" 
      SELECT MemberId 
      FROM qotwVote1a 
      WHERE QuestionId='".$questionId."' 
      AND MemberId='".$id."' 
      AND MemberId NOT IN (' 
       SELECT MemberId 
       FROM qotwVote1a 
       WHERE QuestionId='".$questionId."' 
      ') 
      ");//WHERE QuestionId='".$questionId."' 
$j=0; 
echo $result2; 
while($row2 = mysql_fetch_array($result2)) 
{ 
    echo $row2['Vote1a']." ".$row2['QuestionId']." ".$row2['MemberId']; echo "<br/>"; 
    $j=1; 
} 
echo($j); 
+1

誰かがそのコードを再フォーマットできますか?まだ担当者がいない。 –

+0

@Brian:完了。 – Welbog

答えて

1

質問を実行して メンバー、質問または に投票していません。はい、私は1

私はメンバーをループでこれを行うと、各メンバーのために次のSQL文を実行するだろうにそれを設定している場合ではない場合、私は、 0に変数$ jを設定します。

// assuming to loop over all Members. 
$j = 0; 

$sql = 'SELECT MemberId' 
    . ' FROM qotwVote1a' 
    . ' WHERE QuestionId=' . $questionId . ' 
    . ' AND MemberId=' . $id . ' 
    . ' LIMIT 1;'; // returns max. 1 row if found else FALSE. 

$result2 = mysql_query($sql); 
if (FALSE !== ($row2 = mysql_fetch_array($result2))) { 
    $j = 1; 
} 
5

あなたは、単一引用符内のサブクエリ

(' SELECT MemberId FROM qotwVote1a WHERE QuestionId='".$questionId."' ') 

を持っています。それらを削除します。私は QuestionIdとMEMBERIDが 主キーのフィールド QuestionId、MEMBERID、Vote1aとテーブルqotwVote1aを持って

SELECT MemberId FROM qotwVote1a WHERE QuestionId='".$questionId."' AND MemberId='".$id."' AND MemberId NOT IN (SELECT MemberId FROM qotwVote1a WHERE QuestionId='".$questionId."') 
関連する問題