gpt4 book ai didi

PHP/MySQL 如何让我的评论和回复正确显示?

转载 作者:行者123 更新时间:2023-11-30 23:41:05 24 4
gpt4 key购买 nike

我试图在我的网页上显示我的评论和我的评论回复,但我无法让回复显示正确的评论,有人可以帮助解决这个问题吗?

顺便说一下,所有的 if else 语句都会为评论者或回复者显示不同的颜色,如果他或她是页面创建者或用户的话。

这是 MySQL 表。

CREATE TABLE comments (
comment_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
page_id INT UNSIGNED NOT NULL,
comment TEXT NOT NULL,
date_created DATETIME NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id),
KEY page_id (page_id)
);


CREATE TABLE users (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

这是 PHP 和 MySQL 代码。

$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT comments.*, users.*
FROM comments
LEFT JOIN users
ON comments.user_id = users.user_id
WHERE page_id = $page_id
ORDER BY parent_id ASC");

if (!$dbc) {
print mysqli_error();
} else {
while($row = mysqli_fetch_array($dbc)){
$comment_user = $row['user_id'];
$comment_id = $row['comment_id'];
$comments = $row['comment'];
$parent_id = $row['parent_id'];

if($comment_user == $user_id && $parent_id == 0){

echo '<p class="page-creator-comment">' . $comments . '</p>';

} else if($comment_user != $user_id && $parent_id == 0) {

echo '<p class="commenter">' . $comments . '';

} else if($comment_user == $user_id && $parent_id >= 1){

echo '<p class="page-creator-reply">' . $comments . '</p>';

} else if($parent_id >= 1){

echo '<p class="reply">' . $comments . '</p>';

}
}
}

最佳答案

您可以将评论拉入关联数组,确定它们是否是父项,然后将子项附加到父项。对评论进行排序/匹配后,再次循环并吐出它们。

大致类似:

$comments = array();
if($parent_id == 0)
{
$comments[] = array($comment_id => [all your comment data (possibly as stdObject)],array());
}
else if($parent_id > 0)
{
$comments[$parent_id][] => array($comment_id => [all your comment data]);
}

关于PHP/MySQL 如何让我的评论和回复正确显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975658/

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