PHP/MySQL检索帖子和回复

问题描述:

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

  1. USER1 date_posted MESSAGE1 -reply_button1-

  2. USER2 date_posted 消息2 -reply_button2-

      开始=>
    1. 用户3 date_posted message3 -reply_button3-

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

    主要形式的位置,通过它用户可以发布其它主要意见。

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

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

    我已经搜索在谷歌的想法,但未能找到

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

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

    有关如何处理此问题的任何想法?

    您在选择中没有使用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']; 
    
    
    } 
    
    +0

    从你一个不好回答,很遗憾。 – 2015-02-12 03:45:07

    +0

    你愿意详细说明吗? – DavidRothbauer 2015-02-12 13:24:20

    +0

    我想这个网站的存在是为了得到明确的答案,而不是对其他答案进行一些修改。但是我认为,有时候,碰触宇宙的极限比获得正确答案要容易得多。我这样说是因为这里有很多创建的论坛,但我找不到对我的问题有帮助的任何东西。 – 2015-02-12 16:38:26