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

时间:2015-04-01 19:35:34

标签: php html mysql mysqli

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

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

1 个答案:

答案 0 :(得分:0)

您需要在表格中添加可能的答案,因为可能的答案也会因问题而异。例如(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中获取单选按钮?
  • 如何进行多次插入?

请仔细阅读

指南

How do I ask a good question?

What types of questions should I avoid asking?