1

私はPHPが初めてで、助けが必要です。学生の正しい点数が取れないようです。

シナリオ:

  • 点数付き試験の解答(アンサーキー)を入力する
  • その試験の生徒の解答を入力する
  • 学生の合計スコアを取得します。

私のPHPコード:

for ($count = 1; $count <= $num_ans; $count++)
{
    $answer = $_POST['answer'][($count + 1) - 1];
    $sqlB = "SELECT * FROM paper WHERE id=$count and test_name = '$test_name' and subject='$subject'";
    $qryB = mysql_query($sqlB);
    $rowB = mysql_fetch_array($qryB);
    $anskey = $rowB['answer'];
}
if ($answer = $anskey)
{
    $sqlA = "SELECT points FROM paper WHERE test_name = '$test_name' and subject='$subject' and answer='$answer'";
    $qryA = mysql_query($sqlA);
    while ($rowA = mysql_fetch_array($qryA))
    {
        $correctAns += $rowA['points'];
    }
}
4

2 に答える 2

0

データベースクエリに何かが欠けていると思います。

$query = "SELECT points FROM paper WHERE test_name = '$test_name' and subject='$subject' and answer='$answer'";
$qryA = mysql_query($query);
while($rowA = mysql_fetch_array($qryA)) {
   $correctAns += $rowA['points'];
}

チェックしてください :

  $rowA['points'] = ??// if any value return from db or not.

SQL クエリなので、質問 ID/(行内で一意のもの) answer = '$answer' を渡してください。重複している可能性があるため、実際の値を返すことはできません。

ご理解いただければ幸いです。

于 2012-09-18T19:45:59.667 に答える
0

試す

 for ($count=1; $count<=$num_ans; $count++) {            
        $answer = $_POST['answer'][$count]; 
        $sqlB = "SELECT answer FROM paper WHERE id=$count and test_name = '$test_name' and    subject='$subject'";
        $qryB = mysql_query($sqlB);
        $rowB = mysql_fetch_array($qryB);
        $anskey = $rowB['answer'];

        if ($answer == $anskey) { 
        $sqlA = "SELECT points FROM paper WHERE test_name = '$test_name' and subject='$subject' and answer='$answer'";
        $qryA = mysql_query($sqlA);
         //considering each unique answer would have specific points, while-loop is not required
        //while($rowA = mysql_fetch_array($qryA)) {
        $correctAns += $rowA['points'];
       // }
        }  
} //end of for-loop
于 2012-09-18T19:33:06.467 に答える