Я пытаюсь реализовать форму, в которой пользователю задают некоторые вопросы, которые хранятся в базе данных. Ответы на соответствующие вопросы также хранятся, и пользователь должен отвечать на те, которые указаны в текстовых полях (например, в онлайн-тестовой системе). Я хочу сохранить все ответы, введенные пользователем в массиве, сохраняя значения столбца ответа базы данных в другом массиве. Сравнение значений двух массивов должно дать мне правильные ответы. Я упомянул об этом question и использовал следующие коды. Но проблема в том, что результат показывает неопределенную ошибку смещения в том месте, где я использую переменную $i
для сравнения двух массивов. Пожалуйста, помогите мне.Сравнение значений из нескольких текстовых полей с таблицей mysql
Код для формы (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;
?>
** НЕ ИСПОЛЬЗУЙТЕ расширение 'mysql_' ДЛЯ НОВОГО КОДА, КАК ЭТО СЕЙЧАС УДАЛОСЬ. ИСПОЛЬЗОВАТЬ 'PDO' ИЛИ' MySQLi' INSTEAD. ** – Ethan
устарел для php 5.3? –
Возможный дубликат [PHP: «Примечание: неопределенная переменная», «Примечание: неопределенный индекс» и «Примечание: неопределенное смещение»] (https://stackoverflow.com/questions/4261133/php-notice-undefined-variable- note-undefined-index-and-notice-undef) –