我的主要目标是从数据库中提取20个问题供用户进行更正。我使用MySQL查询随机提取20个问题并将其显示在页面上。这是代码
<?php
$sql = "SELECT `quiz_id`,`content`,`a`,`b`,`c`,`d` FROM quizzes ORDER BY rand() limit 20";
$result = mysql_query($sql) or trigger_error(mysql_error().$sql);
echo '<form action="result.html" method="post"><div>';
$t = 0;
while($data = mysql_fetch_array($result,MYSQL_NUM)){
$t++;
echo <<< EOF
<table>
<tr>
<td>$t. $data[1]</td>
</tr>
<tr><td><input type="radio" name="option$data[0]" value="a">$data[2]</td></tr>
<tr><td><input type="radio" name="option$data[0]" value="b">$data[3]</td></tr>
<tr><td><input type="radio" name="option$data[0]" value="c">$data[4]</td></tr>
<tr><td><input type="radio" name="option$data[0]" value="d">$data[5]</td></tr>
</table>
EOF;
}
echo '<input type="submit" value="Submit" /></div></form>';
?>
现在我正在实现result.php
页面,它将再次显示从第一页随机抽取的所有问题,并在旁边显示结果。我一直在重新显示问题部分。任何帮助都将不胜感激
您必须在问题页面上构建checkboxes
,在输入name
中引入question.id
,并在提交保存到会话'question_id'=>'answer yes|no'
值数组后,稍后在加载result.php
时,从会话中获取所有输入'question_id'=>'answer yes|no'
对数组,并根据问题id从数据库中选择所有问题,如果根据'answer yes|no'
值检查或不检查,则显示在其前面
创建一个隐藏字段,其中包含页面上显示的问题的逗号分隔id。在result.php上,分解从上一页发布的隐藏字段,并在其中循环以获得正确的答案。
<form action="result.html" method="post"><div>
<?php
while($data = mysql_fetch_array($result,MYSQL_NUM)){
$questions .= $data[0] . ','; // assume you have id in $data[0]
// rest of your code
}
?>
<input name= 'question_ids' type='hidden' value= <?php echo $questions ?> />
</form>
result.php
$questions = explode(',' , $_POST['question_ids']);
foreach($questions as $question)
{
// your logic here for getting right answer
}