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

标签 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

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

最佳答案

您还需要在表中添加可能的答案,因为可能的答案也会根据问题而有所不同。例如 (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?

关于php - 使用 PHP 显示数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399299/

相关文章:

php - mysql更新访问次数=访问次数+1个错误

php - MySQL 和 PHP 的日期范围

php - 在 PHP 中使用 google image API 获取图像搜索结果的第一个 URL

PHP 数组和数组对象

html - 如何将两种颜色应用于 header 标签的底部边框?

php - 如何提高搜索建议的速度?

javascript - Node.js MYSQL 检测查询的插入/更新完整性?

php - symfony2 CLI [Symfony\Component\Debug\Exception\ContextErrorException]

html - og :type hotel is ignored

javascript - 在 Javascript 中定义变量时使用 var 关键字