2016-12-22 96 views
-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; 
      } 
     } 
    } 
+0

你在做什麼。你應該得到所有的帖子,然後爲每個帖子(在循環中),你應該通過使用post_id獲得與該帖子相關的所有評論。我假設在你的評論表中有post_id,它建立了發表和評論表之間的關係。 你也可以使用連接,但爲了清晰和簡單的理解首先獲得所有文章,並通過所有帖子循環顯示帖子和內部循環通過帖子ID獲取所有評論。循環評論和顯示。 (使用嵌套循環)。如果你的要求是顯示所有帖子的評論,那麼我可以重寫你的代碼。 – webDev

+0

我以爲我的循環是正確的,但顯然不是。我想顯示所有帖子,以及與任何有評論的帖子相關的所有評論。是的,評論表中的comment_post_ID對應於帖子表中的ID。謝謝。 – user2444243

+0

所以第一遍循環遍歷所有帖子,並在該循環內搜索與該特定帖子相關的所有評論。 – webDev

回答

0

此,下面,最後擔任希望:

$postData = mysqli_query($conn,"SELECT * FROM wp_posts ORDER BY post_date ASC) or die(mysqli_error()); 
    $commentData = mysqli_query($conn,"SELECT * FROM wp_comments WHERE comment_approved = '1' ORDER BY comment_date ASC") or die(mysqli_error()); 
    $posts = array();  
    while($row = mysqli_fetch_assoc($postData)) { 
     $posts[] = $row; 
     $commentrow = mysqli_fetch_assoc($commentData); 
     $comments[] = $commentrow; 
     echo '<h3>' . $row['post_title'] . '</h3>'; 
     echo '<h5>' . $row['post_author'] . ', ' . $row['post_date'] . '</h5>'; 
     echo '<p>' . $row['post_excerpt'] . '... <a href="' . $row['permalink'] . '">read more</a></p>'; 
     if($row['comment_count'] > 0) { 
      echo '<blockquote>'; 
      echo '<b>Comments</b><br />'; 
      foreach($comments as $comment) { 
       if($row['ID']==$comment['comment_post_ID']) { 
        $comment_excerpt = substr($comment['comment_content'],0,100); 
        echo '<br>' . $comment_excerpt . ' - <b>' . $comment['comment_author'] . '</b>, ' . $comment['comment_date'] . '<br>'; 
        } 
       }    
      echo '</blockquote>'; 
      } 
     } 
相關問題