Mysql加入线程及其回复

时间:2010-09-07 14:50:51

标签: php mysql forum

好的,我愿意为我的网站创建一个简单的论坛。那么,让我们开始吧。

我猜线程表就像这样:

t_id, thread_name, who_created, when_created

回复表格会像这样:

r_id, t_id, who_wrote, what_wrote, when_wrote

当有人想查看带有回复的帖子时,他点击按钮将他移动到index.php?t_id=1或者像那样。 t_id表示线程的表值t_id。我应该写什么连接查询来显示主题及其回复?

mysql_query('SELECT *
             FROM threads AS t
             INNER JOIN replies AS r
             ON t.t_id = r.t_id
             WHERE t.t_id = '.mysql_escape_strings($_GET['t_id']));

是不是?那么我应该如何提取所有数据呢?使用mysql_fetch_array?那怎么样?有什么建议?也许更好地写2个查询而不是JOIN?感谢。

1 个答案:

答案 0 :(得分:3)

在这种情况下不要使用连接,因为它没有任何优势,相反会降低查询速度。而是做两个单独的查询:

mysql_query('SELECT *
         FROM threads AS t
         WHERE t.t_id = '.mysql_escape_strings($_GET['t_id']));

mysql_query('SELECT *
         FROM replies AS r
         WHERE r.t_id = '.mysql_escape_strings($_GET['t_id']));

这会快得多。