我最近刚刚学会了如何使用 mysqli 从数据库中获取内容。我正在尝试创建一个测验。这是我得到的代码:
<p class="question"><?php
error_reporting(0);
require 'connect.php';
if($result = $db->query("SELECT * FROM questions")){
if($count = $result->num_rows){
while($row = $result->fetch_object()){
echo $row->question, '<br>';
}
$result->free();
}
}
?></p>
<ul class="answers">
<form action="">
<input type="radio" name="q1" value="a" id="q1a"><label for="q1a">1</label><br/>
<input type="radio" name="q1" value="b" id="q1b"><label for="q1b">10</label><br/>
<input type="radio" name="q1" value="c" id="q1c"><label for="q1c">12</label><br/>
<input type="radio" name="q1" value="d" id="q1d"><label for="q1d">7</label><br/>
<input type = "submit" value="submit">
</form>
</ul>
其输出是,
1. The answer to 10+10 is?
//radio buttons here followed by submit.
基本上,我是从数据库中获取问题的。
这样做的一个问题是,如果我向数据库添加更多问题,它们将直接位于 1 下方。10+10 的答案是?。这是一个问题,因为输出将是:
The answer to 10+10 is?
The answer to 5+5 is?
The answer to 15+15 is?
//Radio buttons with answers from question 1
//Radio buttons with answers from question 2
//Radio buttons with answers from question 3
如何修改代码以使可能的答案低于相应的答案?
最佳答案
您还需要在表中添加可能的答案,因为可能的答案也会根据问题而有所不同。例如 (10 + 10) 我们的答案都不是您在 html 中提到的正确答案。然后使用循环显示问题以及可能的答案
Q_ID | question | ans1 | ans2 | ans3 | ans4 | answer
1 '10 + 10 is ?' 30 10 40 20 20
2 ' 5 + 5 is ?' 5 10 20 55 10
为此,表的创建将是这样的
CREATE TABLE IF NOT EXISTS `questions` (
`Q_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`question` char(150) NOT NULL,
`ans1` varchar(150) NOT NULL,
`ans2` varchar(150) NOT NULL,
`ans3` varchar(150) NOT NULL,
`ans4` varchar(150) NOT NULL,
`answer` varchar(150) NOT NULL,
PRIMARY KEY (`Q_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
此后,您需要通过多次 INSERT 将问题添加到数据库
然后循环遍历从数据库获取的结果集
for($i=0;$i<=$num;$i++)
{
$question = mysql_query("SELECT * FROM `questions` WHERE `Q_id`='$i'");
$quiz = mysql_fetch_assoc($question);
echo $quiz['question'] . '<br />';
echo '<input type="radio" name="' . $Q_id .'" value="' . $quiz['ans1'] . '" />' . $quiz['ans1'] . '<br />';
echo '<input type="radio" name="' . $Q_id .'" value="' . $quiz['ans2'] . '" />' . $quiz['ans2'] . '<br />';
echo '<input type="radio" name="' . $Q_id .'" value="' . $quiz['ans3'] . '" />' . $quiz['ans3'] . '<br />';
echo '<input type="radio" name="' . $Q_id .'" value="' . $quiz['ans4'] . '" />' . $quiz['ans4'] . '<br />';
$Q_id++;
}
最后,这个网站不提供完整的代码,只有当问题非常具体时我们才能提出想法并回答。对于所有嵌套问题,请自己做一些功课
- 如何在 PHP 中获取单选按钮?
- 如何进行多次插入?
请仔细阅读指南
关于php - 使用 PHP 显示数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399299/