0

私のスクリプトであなたの助けが必要です、私は特定の記事のすべてのコメントをそれぞれのページに引っ張ろうとしています。

コメントが異常に表示されており、コメントを付けていない記事も含め、すべての記事に対してコメントテーブルのすべてのコメントが表示されています。

ホームページ

     $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,

誰かが私がどこで間違っているのかわかりますか?

4

2 に答える 2

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を使用している場合は、ステートメントを呼び出すときにPDOに置き換えてもらいます。execute

于 2012-05-04T22:29:11.760 に答える
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;
于 2012-05-04T22:29:28.500 に答える