这就是我的数据库的样子
评论
id 1 - (primary key)
user_id 2
comment - I need help
id 2 - (primary key)
user_id
comment - I'm going to sleep now
id 3 - (primary key)
user_id 2
comment - Watching the news.
回复
id 1
comment_id 1 (foreign key)
reply - what do you need help with?
id 2
comment_id 1 (foreign key)
reply - i can help you!
id 3
comment_id 1 (foreign key)
reply - i don't understand!
id 4
comment_id 2 (foreign key)
reply - OK have a good night.
问题是,我希望评论显示嵌套如下:
评论 - 我需要帮助
--- 回复 - 您需要什么帮助?
- - 我可以帮助你!
- - - 我不明白!
评论 - 我现在要睡觉了
--- 回复 - 好的,晚安。
评论 - 看新闻。
- - 无回复
不是这样,这是我现在得到的。
评论 - 我需要帮助
--- 回复 - 您需要什么帮助?
评论 - 我需要帮助
- - 我可以帮助你!
评论 - 我需要帮助
- - 我不明白!
评论 - 我现在要睡觉了
--- 回复 - 好的,晚安。
评论 - 看新闻。
- - 无回复
这是我的查询
$query = $db->prepare("SELECT
comments.id,
comments.user_id,
comments.comment,
replies.id,
replies.comment_id,
replies.reply
FROM comments
LEFT JOIN replies
ON comments.id = replies.comment_id
WHERE comments.user_id = ? ORDER BY comments.id DESC");
try {
$query->execute();
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$comm_id = $row['id'];
$comm_user_id = $row['user_id'];
$comm = $row['comment'];
$re_id = $row['id'];
$re_comm_id = $row['comment_id'];
$re_reply = $row['reply'];
echo $comm." - ".$re_reply;
}
} catch (PDOException $e) {
echo $e->getMessage();
exit();
}
问题显然出在查询结构中,但我不确定如何构建它,以便获得所需的结果。
我希望我足够清楚地解释了我的自我,感谢您提前提供的任何帮助。