PHP SQL sorgusunda Sorunu

2 Cevap php

Ben alanlara QuestionId, MemberId, Vote1a QuestionId ve MemberId birincil anahtar ile qotwVote1a bir tablo var.

Ben bir üyesi, bir soru için ya oy verdiğini bulmak için bir sorgu çalıştırmak istiyorum. Eğer değilse, ben $j 0 için değişkeni, evet ben bunu ayarlarsanız 1.

Ben bu sorguyu yazdım. Ama bana bir hata veriyor. Birisi ona bir bakabilir miyim? Ve bir şey daha sormak istiyorum, bana bildirin.

$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);

2 Cevap

I have a table qotwVote1a with fields QuestionId, MemberId, Vote1a where QuestionId and MemberId are the primary key.

I want to run a query to find that a member, has voted for a question or not. If not, I set the variable $j to 0, if yes I set it to 1.

Ben Üyeleri üzerinde bir döngü ile bunu yapmak ve her üye için aşağıdaki sql deyimini yapardım:

// 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;
}

Sen alt sorgu var

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

tek tırnak içine. Onları çıkarın:

SELECT MemberId FROM qotwVote1a WHERE QuestionId='".$questionId."' AND MemberId='".$id."' AND MemberId NOT IN (SELECT MemberId FROM qotwVote1a WHERE QuestionId='".$questionId."')