php - 尝试通过测验系统获得良好的订单

标签 php html mysql phpmyadmin while-loop

我正在尝试制作一个测验系统,但它输出:

Question1
Answer1
Question1
Answer2

等等..而不是

Question1
Answer1
Answer2
... and so on

我该如何解决?

代码:

$question = mysql_query("SELECT questions.*, answers.* FROM questions inner join answers on questions.id=answers.question_id");

while($row = mysql_fetch_assoc($question))
{
    echo $row['question'].'<br />' .$row['answer'].'<br />';            
}

最佳答案

修复您的 WHILE 循环。它将始终打印问题和答案。快速修复看起来像这样:

$previousQuestion = null;
while($row = mysql_fetch_assoc($question))
{
    if($row['question'] !== $previousQuestion) {
        echo $row['question'].'<br />';
    }

    echo $row['answer'].'<br />';

    $previousQuestion = $row['question'];
}

可以用其他方式简化语法,但这行得通。基本上,由于问题与其答案之间存在一对多关系,因此仅当问题与前一行的问题不同时才打印该问题。

关于php - 尝试通过测验系统获得良好的订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14459899/

相关文章:

php - 循环遍历xml并将数据存储到MySQL表中

html - 使用增量的百分比和固定大小 div 的混合

php - 为什么我的JS函数在动态添加内容到页面后不起作用?

php - 将自定义消息(或任何其他数据)传递给 Laravel 404.blade.php

php - PDO mysql查询问题

html - 如何在不影响其父级的情况下使用 css 定位四层深度 UL

html - 如何在 Bootstrap 中改变 body 的边界半径

php - 自定义排序顺序 PHP + MySQL

mysql - serverError :class javax. faces.el.E​​valuationException 无法执行查询

javascript - mysql查询不能与ajax中的跨域一起使用