使用 PHP 显示数据库中的记录

Displaying records from a database using PHP

我最近刚刚学会了如何使用 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

如何修改代码,使可能的答案低于相应的答案?

您还需要在 table 中添加可能的答案,因为可能的答案也会因问题而异。例如,我们的 (10 + 10) None 个答案是您在 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

为此,table 创作将是这样的

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 中获取单选按钮?
  • 如何进行多次插入?

请仔细阅读

上的指南

How do I ask a good question?

What types of questions should I avoid asking?