2015-03-19 54 views
0

我正在为我们正在构建的一个简单的社交网络系统制作一个像wallpost的facebook。除了显示评论之外,它迄今为止效果很好。在我的数据库中,我有一个表格,另一个表示评论。我在他们的特定帖子中显示评论的方式是,在我的评论表中,我有一个名为comment_id的列。因此,例如,如果帖子的ID是7,并且comment_id也是7,那么评论将出现在具有相同ID的帖子下方。现在,我的问题是,我可以在各自的帖子中成功显示评论,但只显示1条评论。我希望所有评论都能显示在他们所属的每篇文章中,但我似乎无法使其发挥作用。如何使用mysql记录填充无序列表?

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

因此,例如,如果帖子的ID是7和COMMENT_ID也是7则评论下方会出现该职位有相同的ID。 [...]但只显示1个

如果您要将评论与帖子ID链接起来,则每个帖子只会收到一条评论,因为您只能拥有一个唯一的帖子ID(假设您将帖子ID作为主键)。

您的comments表中应该有一列post,并且该列引用了他们评论的帖子。

当你做你的查询,你可以像这样的职位inner join的评论:

INNER JOIN comments ON comments.post = posts.id 
+0

我的唯一的ID是commenter_id,该COMMENT_ID仅仅是具体的文章中,我评论的ID。因此,如果我留言的ID为7的帖子,那么我的comment_id也将是7通过获取帖子的ID并将其插入到我的comment_id中,并且当其他用户对同一帖子发表评论时也会发生同样的情况。所以,例如,如果我有3条评论指向那篇文章,那么所有3条应该输出,而不是1条,但我真的很困惑如何做到这一点。 – Renboy 2015-03-19 01:34:14