gpt4 book ai didi

php - 列出来自不同表的数据,根据ID分组

转载 作者:行者123 更新时间:2023-11-29 00:24:32 24 4
gpt4 key购买 nike

我是 MySQL 的初学者。我对显示来自两个不同表(同一数据库)的数据有疑问,并根据它们的 ID 列出它们。

Recently, I am doing my project about creating simple discussion board (chat style) with features another user can comment to a post.

我有 2 个表,

Shoutbox -> 记录用户提交的讨论

ID | Name | Text  |
1 | Iqbal  | This is Question   |
2 | Zizan | Another Question |

评论 -> 记录来自其他用户的评论

ID | Comment   |
1 | Answer for Iqbal |
1 | Another answer for Iqbal   |
2 | Answer for Zizan |

如何根据 Shoutbox 中的数据(基于他们的 ID)显示评论

所以,它应该是这样的

Discussion Board

Iqbal : This is Question
Answer : Answer for Iqbal
Answer : Another Answer for Iqbal

Zizan : Another Question
Answer : Answer for Zizan

最佳答案

试试这个

SELECT * FROM `Shoutbox`
LEFT JOIN `Comment`
ON `Shoutbox`.ID = `Comment`.ID

当然要显示数据,您将有一个 while 循环,在您的 while

中执行此操作
while ( ... ) {

echo $r['Name'] . ' : ' . $r['Text'];
echo '<br />';
echo 'Answer :' . $r['Comment'];

echo '<br /> <br />';
}

编辑:

如果您对每个 Shoutbox 有多个答案,那么您需要执行以下操作。

注意查询中的变化

SELECT * FROM `Shoutbox`
RIGHT JOIN `Comment`
ON `Shoutbox`.ID = `Comment`.ID

和下面的代码

$finaleArray = array();
while ( $r = mysqli_fetch_array($result) ) {

$id = $r['ID'];

if ( !isset($finaleArray[$id]['question']) ) {
$finaleArray[$id]['question'] = $r['Text'];
$finaleArray[$id]['name'] = $r['Name'];
}

$finaleArray[$id]['answer'][] = $r['Comment'];
}

foreach( $finaleArray as $id => $a ) {
echo $a['name'] . ' : ' . $a['question'];
foreach($a['answer'] as $ans) {
echo '<br />';
echo 'Answer :' . $ans;
}
echo '<br /> <br />';
}

当然上面的代码有混淆的地方,有什么不懂的就去问吧。

关于php - 列出来自不同表的数据,根据ID分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19558095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com