我正在尝试制作一个测验系统,但它输出:
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/