2012-04-14 30 views
0

有多個博客條目,每個應顯示一次。有一個「評論」鏈接,顯示和隱藏每個博客條目的評論。我無法弄清楚爲什麼同樣的第一個結果不斷出現。每次添加新評論時都會發生這種情況(目前有5條,博客部分顯示5條,每條只顯示第一條評論)。 根據用戶是否登錄到「評論」鏈接,顯示登錄鏈接或(如果登錄)表單域以提交評論。爲什麼相同的單個結果多次循環?

<?php 
$conn = mysql_connect("...", "...", "..."); 
mysql_select_db("..."); 
$result = mysql_query("select * from blog"); 
$result2 = mysql_query("select * from blogcomment where blog.ID = blogcomment.blogID"); 
$i  = 1; 
while ($row = mysql_fetch_array($result)) 
{ 
    echo "<h1>$row[title]</h1>"; 
    echo "<p class ='second'>$row[blog_content]</p> "; 
    echo "<p class='meta'>Posted by .... &nbsp;&bull;&nbsp; $row[date] &nbsp;&bull;&nbsp; <a href='#' onclick=\"toggle_visibility('something$i'); return false\">Comments</a><div id='something$i' style='display: none;'><p class='third' >"; 
    $i++; 

    while ($row = mysql_fetch_array($result2)) 
    { 
     echo "$row[commentdate] &nbsp;&bull;&nbsp; $row[username]</p><p>said:</p> <p>$row[comment]</p>"; 
     if (isset ($_SESSION["gatekeeper"])) { 
      echo '<form method="post" action="postcomment.php"><input name="ID" type = "hidden" value = "' . $row[ID] . '" /><input name="comment" id="comment" type="text" style="margin-left:20px;"/><input type="submit" value="Add comment" /></form></div>'; 
     } 
     else { 
      echo '<p class="third"><a href="register.html">Signup </a>to post a comment</p></div>'; 
     } 
    } 
} 
mysql_close($conn); 
?> 
+1

使用[mysql_fetch_assoc(http://php.net/manual/en/function.mysql-fetch-assoc.php) – noob 2012-04-14 12:35:36

+1

我也建議周圍使用數組鍵單引號,$ row [blah]應該是$ row ['blah'],如果某人後來出現並確定了('blah',1234); 。很少發生,但很好避免。 – Dale 2012-04-14 12:37:21

+0

你必須使用嵌套循環來滿足你的需求。 – hjpotter92 2012-04-14 12:37:55

回答

3
$i = 1; 
while($row = mysql_fetch_array($result)) 
{ 
相關問題