PHP / MySQL检索帖子和回复

时间:2015-02-11 17:17:44

标签: php mysql

我目前正在工作的网站,是一个php / mysql简单论坛,用于学习编程。 所以,我有2个mysql表(其中一个插入主要帖子,另一个插入回复)。 结构是这样的:

  1. user1 date_posted MESSAGE1 -reply_button1 -

  2. user2 date_posted 消息2 -reply_button2 -

    1. user3 date_posted MESSAGE3 -reply_button3 -

    2. user4 date_posted 消息4 -reply_button4- 等...

  3. 主页形式通知用户可以发布其他主要评论。

    OBS当我说“主要评论”时,我指的是像1和2这样的帖子。其余的是对这些主要评论的回复。

    问题在于,当我想将所有回复置于主要评论之下时(如fe,回复3和4应出现在主评论2下),我不知道如何检索所有这些回复并显示它们正确。我有一些逻辑用于显示,但唯一的问题是它只检索其中一些,但不是全部(fe,它抓取并只显示第一个回复(id为3)而不是第二个回复(带有4)的身份。

    我在google上搜索了一个想法,但没找到。

    这是我检索回复的代码:http://phprun.org/code/RKVMSYT-By-Guest

    我的桌子:http://www.2shared.com/photo/-6kjm1vs/tables.html(你可以看到这张图片而不下载它) 可以看出,两个表中的两个id都不是auto_increment字段。所以来自forum_replies的reply_id引用了来自forum_comments的一个id,如果该回复是对主要评论的回复。

    关于如何处理这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

您未在select中使用where子句。 相反,你似乎拉了整个表,然后迭代寻找响应。

尝试使用:

$stmt2 = $db->prepare("SELECT * FROM forum_replies WHERE reply_id =?");
$stmt2->execute(array($id));

这将为您提供更快的回报,并且您不必遍历每条记录,看看是否需要它。

当我遍历行集时,这是我的方法......

foreach($stmt2 as $row) {

echo "this is id ".$row['id'];


}