[英]PHP/MySQL How to make my comments and replies display correctly?
我試圖在網頁上顯示我的評論和評論回復,但是我無法顯示帶有正確評論的回復,有人可以幫助解決此問題嗎?
順便說一句,如果評論者或回復者是頁面創建者或用戶, if else
所有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]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.