在相应文章下显示评论的问题

时间:2012-05-04 22:11:47

标签: php mysql

我需要您对我的脚本的帮助,我试图将特定文章的所有评论都放到他们各自的页面上。

评论显示异常,因为它会在评论表中显示所有文章的所有评论,甚至是我没有发表评论的文章。

主页

     $query = mysql_query(" SELECT
     c.username , c.comment_body,
     c.comment_date 
     FROM comment AS c  
     INNER JOIN home AS h ON
     c.article_id = h.home_id")
     or die (mysql_error()); 

关于页面

     $query6 = mysql_query(" SELECT
     c.username , c.comment_body,
     c.comment_date 
     FROM comment AS c  
    INNER JOIN about AS as ON
    c.article_id = as.about_id")
    or die (mysql_error()); 

评论表

 CREATE TABLE IF NOT EXISTS`comment`(
     `comment_id` int(255),
     `article_id` int(255),
     `username` varchar(255) ,
     `comment_body` varchar(300),
     `comment_date` datetime,
     PRIMARY KEY (`comment_id`)

关于表格

  CREATE TABLE IF NOT EXISTS `about` (
  `about_id` int(255),
  `about_head` varchar(255)
  `about_content` varchar(4000),
  `about_tags` varchar(255) ,
  `about_created` datetime,



     **Homepage Table**

  CREATE TABLE IF NOT EXISTS `home` (
  `home_id` int(255),
  `home_head` varchar(255)
  `home_content` varchar(4000),
  `home_tags` varchar(255) ,
  `home_created` datetime,

有人看到我哪里出错吗?

2 个答案:

答案 0 :(得分:0)

你不是在告诉SQL你当前在哪篇文章,所以它正在取出它们。在查询结束时需要WHERE子句,如下所示(“about”的示例):

SELECT
    c.username, 
    c.comment_body,
    c.comment_date 
FROM comment AS c  
    INNER JOIN about AS a ON
    c.article_id = a.about_id
WHERE a.about_id = ?

将问号替换为当前页面的实际ID。如果您使用PDO,请在声明中致电execute时替换它。

答案 1 :(得分:0)

您的“关于页面”未指定WHERE子句来仅过滤所需结果的结果。将其更改为:

SELECT
c.username , c.comment_body,
c.comment_date 
FROM comment AS c  
INNER JOIN about AS as ON
c.article_id = as.about_id
WHERE c.article_id = 123;