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 .... • $row[date] • <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] • $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);
?>
사용 [mysql_fetch_assoc (http://php.net/manual/en/function.mysql-fetch-assoc.php) 나는 또한 배열 키 주변에 작은 따옴표를 사용하는 것이 좋습니다겠습니까 – noob
, $ 행 [어쩌구]는 $ row [ 'blah'] 여야합니다. 나중에 누군가가 따라 와서 정의한다면 ('blah', 1234); . 거의 발생하지 않지만 피하는 것이 좋습니다. – Dale
원하는대로 중첩 루핑을 사용해야합니다. – hjpotter92