我正在为像我们正在构建的简单社交网络系统制作一个像wallpost的facebook。到目前为止,除了显示评论外,它的效果非常好。在我的数据库中,我有一个帖子表和另一个评论表。我在他们的特定帖子中显示评论的方式是,在我的评论表中,我有一个名为comment_id的列。因此,例如,如果帖子的ID为7且comment_id也为7,则评论将显示在具有相同ID的帖子下方。现在,我的问题是我可以在各自的帖子中成功显示评论,但只显示1。我希望所有评论都显示在他们所属的每个帖子中,但我似乎无法使其发挥作用。
<?php
require_once 'dbconfig.php';
$user = $_SESSION['user'];;
echo '<form action="post.php" method="post" class="wallpost"><input
type="text" name="post" size="50"><input type="submit" name="wallpost"
value="Post"></form><br/>';
$query = $con->query("SELECT * FROM statuspost LEFT JOIN comments ON
statuspost.id=comments.comment_id group by statuspost.id DESC");
while($i = $query->fetch_object()){
echo '<span class="user">'.$i->user.'</span>'.'<br>'.'<span
class="post">'.$i->post.'</span>'.' <form action="editpost.php?type=post&
id='.$i->id.'" method="post"><span id="edit'.$i->id.'" class="editfield"
style="display:none;"><input type="text" name="edit"><input
type="submit"
value="Edit" class="editb"><br/></span><a href="#"
onclick="showEdit(edit'.$i->id.');">Edit </a><a
href="remove.php?type=post&
id='.$i->id.'" >Remove</a><a href="comment.php"> Comment</a></form>'.'<br
/>'.'<form action="comment.php?for='.$i->id.'" method="post"
id="comment">
<input type="text" name="comment" id="comment">
<input type="submit" value="Comment" id="commentb"></form>'.'<br
/><ul><li>'.$i->comment.'</li></ul>';
}
?>
答案 0 :(得分:0)
所以,例如,如果帖子的ID是7而comment_id也是7,则评论将出现在具有相同ID的帖子下方。 [...]但只显示了1
如果您要将评论与帖子ID相关联,那么每个帖子只会收到一条评论,因为您只能拥有一个唯一的帖子ID(假设您将帖子ID作为主键)。
您的post
表格中应该有一列comments
,并且该列会引用他们评论过的帖子。
当您进行查询时,您可以inner join
对帖子进行评论,如下所示:
INNER JOIN comments ON comments.post = posts.id