我正在尝试实现一个表单,在表单中向用户询问存储在数据库中的一些问题。还存储了各个问题的答案,并且用户应该回答所提供的文本框中的答案(如在线测试系统)。我想将用户输入的所有答案存储在一个数组中,同时将数据库的答案列的值存储在另一个数组中。比较两个数组的值应该给我正确答案的数量。我提到了这个question,并使用了以下代码。但问题是结果在我使用变量$i
来比较两个数组的地方显示了一个未定义的偏移误差。请帮帮我。
表格代码(giveexam.php):
<form id ="answersheet" name="answersheet" action="assessment.php" method="post">
<table border="1px">
<tr>
<!--td>sr_no</td-->
<td width="144">Question</td>
<td width="50">option1</td>
<td width="50">option2</td>
<td width="50">option3</td>
<td width="50">option4</td>
<td width="30">
<strong>ANSWER</strong></td>
</tr>
<?php
require_once("connection.php");
$query = "select * from mgmt";
$result = mysql_query($query, $connection);
if(!$result)
echo "ERROR: No results";
else
{
while($row = mysql_fetch_array($result))
{
?>
<tr>
<!--td><?php echo $row['eid'];?></td-->
<td><?php echo $row['question'];?></td>
<td><?php echo $row['op1'];?></td>
<td><?php echo $row['op2'];?></td>
<td><?php echo $row['op3'];?></td>
<td><?php echo $row['op4'];?></td>
<td><input type="text" name="ans[]"/></td>
</tr>
<?php }
} //end while
?>
</table>
<tr>
<td></td>
<td><input type="submit" value="submit" /></td>
</tr>
</form>
PHP文件(assessment.php):
<?php
session_start();
$m=0;
//$c=0;
require_once("connection.php");
$query="select answer from mgmt";
$result=mysql_query($query, $connection);
$result_array=array();
while($row=mysql_fetch_assoc($result))
{$result_array[]=$row;}
$answer=array();
$answer[]=$_POST["ans"];
for($i=1;$i<4;$i++)
{
if($answer[$i]==$result_array[$i])
$m++;
}
echo $m;
?>
答案 0 :(得分:0)
未定义的偏移量意味着$ answer或$ result_array小于4.尝试首先打印结果并查看问题所在的位置。