入力要素に回答を入力できるオンライン テスト スクリプトを作成しています。テストが送信されたら、データベースの回答を入力された回答と比較して、それが間違っているかどうかを判断したいのですが、使用しているスクリプトが機能していません! :S
これが問題です!データベースには、50 のうち 4 つの回答が用意されています (まだすべてではありません)。ページで正しいか間違っているかに関係なく、すべての回答がリストされていますが、正しく機能していません。入力内容に関係なく、49までのすべての回答が正しくないと言い、何らかの理由で50が正しいと言いますか?...
これが私のスクリプトです:
<?php
$con=mysqli_connect("localhost","dstsbsse","pass","user");
if (mysqli_connect_errno($con))
{
echo "ERROR - Failed to connect to MySQL Server. Please contact an Administrator at English In York: " . mysqli_connect_error();
}
//Set variables to hold output data and total score.
$output="";
$score=0;
//for-next loop. This means "Set n to value one. Every time through the loop (between {}) increase n by one. Do this while n is less than or equal to 50"
for($n=1;$n<=50;$n++)
{
$sql="SELECT a$n FROM answer WHERE 1";
// $sql="SELECT * FROM answer WHERE name='a$n'"; //sql is specific to your table of course - you will need to change this.
$result = $con->query($sql); // perform the query
$row = $result->fetch_assoc(); //load the result into the array $row
$key="a".$n; //concatenate to generate the $_POST keys
if($row['answer']==$_POST[$key]) //compare the data from the table with the answer
{
//answer is correct
$score++;
$output.="Answer $n is correct</BR>"; //add responses to the output string
}
else
{
$output.="Answer $n is incorrect</BR>";
}
}
$output.="Total score: $score/50"; //add the score
echo $output; //echo to screen.
以下は、質問回答ボックスの 1 つの例です。
<input type="text" name="a1" id="a1" required>
どうすればこれを修正できますか?