-2
我試圖顯示多個帖子,每個帖子都有自己的多個評論。這在下面的內容中適用於第一篇文章(或者至少顯示3條評論中的2條),但其餘部分不適用。我搜索,但無法找到(或不承認)在這個網站或其他地方的確切問題的答案。謝謝。在PHP/mySQL站點顯示每個帖子的評論
$result1 = @mysql_query('select * from posts,comments where comment_post_ID = ID and post_status="publish" and comment_approved="1" ORDER BY post_date,category,subcat1,subcat2 ASC');
$result2 = @mysql_query('select * from comments where comment_approved="1" ORDER BY comment_date');
$row = mysql_fetch_array($result1);
$row2 = mysql_fetch_array($result2);
while ($row = mysql_fetch_array($result1)) {
$post = $row['post_content'];
$id = $row['ID'];
$title = $row['post_title'];
$content = "<br /><h3 align=\"left\">" . $title . "</h3>\n";
$content .= "<h4 align=\"left\">by " . $row['post_author'] . " - " . $row['post_date'] . "</h4>\n";
$content .= "<p align=\"left\">" . var_export($post, true) . "</p>\n<p>\n";
echo $content;
while ($row2 = mysql_fetch_array($result2)) {
$comment = "<blockquote>";
$comment .= "<h4 align=\"left\">" . $row2['comment_author'] . " commented on " . $row2['comment_date'] . "</h4>\n";
$comment .= "<p align=\"left\">" . $row2['comment_content'] . "</p>\n<p>\n";
$comment .= "</blockquote>";
if($row2['comment_post_ID'] == $id) {
echo $comment;
}
}
}
你在做什麼。你應該得到所有的帖子,然後爲每個帖子(在循環中),你應該通過使用post_id獲得與該帖子相關的所有評論。我假設在你的評論表中有post_id,它建立了發表和評論表之間的關係。 你也可以使用連接,但爲了清晰和簡單的理解首先獲得所有文章,並通過所有帖子循環顯示帖子和內部循環通過帖子ID獲取所有評論。循環評論和顯示。 (使用嵌套循環)。如果你的要求是顯示所有帖子的評論,那麼我可以重寫你的代碼。 – webDev
我以爲我的循環是正確的,但顯然不是。我想顯示所有帖子,以及與任何有評論的帖子相關的所有評論。是的,評論表中的comment_post_ID對應於帖子表中的ID。謝謝。 – user2444243
所以第一遍循環遍歷所有帖子,並在該循環內搜索與該特定帖子相關的所有評論。 – webDev