所以我有一个 index.php 页面,它从我的数据库中的两个表中吐出数据。第一个表questions包含我的 QuestionID 的一列,如下所示:
qid
----
1
2
3
调用的第二个表answers包含两列,一列用于我的 AnswersID,另一列用于链接到我在questions表中的QuestionsID ,它看起来像这样:
aid | aqid
----|-----
1 | 3
2 | 1
3 | 1
所以在我的 index.php 页面上,我基本上想qid从questions表中回显出每一行,旁边是与每个 QuestionID 对应的答案总数(表中的aid行answers)。简单地说,我想要在我的 index.php 页面上实现的结果是这样的:
QuestionID: 1 / Answers: 2
QuestionID: 2 / Answers: 0
QuestionID: 3 / Answers: 1
但是根据我当前的代码,我无法实现这个结果。它不断为每个表回显错误的行数。这是我得到的不需要的结果:
QuestionID: 1 / Answers: 3
QuestionID: 2 / Answers: 3
QuestionID: 3 / Answers: 3
那么我将如何解决这个问题以获得正确的结果?这是我当前的代码:
<?php
$sql = "
SELECT questions.*, GROUP_CONCAT(answers.aqid) AS aqid
FROM questions
LEFT JOIN answers
ON questions.qid=answers.aqid
GROUP BY questions.qid
";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$qid = $row["qid"];
$aqid = $row["aqid"];
$row_cnt = $result->num_rows;
?>
<div>
QuestionID: <?php echo $qid; ?>
<?php foreach($answers as $answer): ?>
Answers: <?php echo $row_cnt; ?>
<?php endforeach; ?>
</div>
<?php } ?>
感谢您的帮助。