2012-04-14 6 views
0

블로그 항목이 여러 개 있으며 각 블로그 항목은 한 번 표시되어야합니다. 모든 블로그 항목의 댓글을 표시하거나 숨기는 '댓글'링크가 있습니다. 같은 첫 번째 결과가 계속 나타나는 이유를 알 수 없습니다. 그것은 새로운 코멘트를 추가 할 때마다 발생합니다 (현재 5 개가 있고 블로그 섹션은 5 번 표시되고 첫 번째 코멘트 만 표시됩니다). 사용자가 "comments"링크에 로그인했는지 여부에 따라 로그인 링크가 표시되거나 (로그인 한 경우) 메모를 제출할 양식 필드가 표시됩니다.동일한 단일 결과가 여러 번 반복되는 이유는 무엇입니까?

<?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

+1

, $ 행 [어쩌구]는 $ row [ 'blah'] 여야합니다. 나중에 누군가가 따라 와서 정의한다면 ('blah', 1234); . 거의 발생하지 않지만 피하는 것이 좋습니다. – Dale

+0

원하는대로 중첩 루핑을 사용해야합니다. – hjpotter92

답변

3
$i = 1; 
while($row = mysql_fetch_array($result)) 
{ 
관련 문제