0

请在我的脚本方面需要你的帮助。我有一个网站,其中一些内容标题被放入存档框中,以便在单击标题时显示内容。我的问题是关于每一页上的评论。

通常我用 GET 传递页面 ID,所以如果没有设置 GET,这意味着显示的文章是当前文章,并且它的 id 被手动传递到 WHERE 查询中。

问题是用户对旧档案文章的评论并没有显示在他们各自的文章页面上,而是显示在我手动传递ID的文章上。我该如何解决这个问题

这是我正在尝试制作的一些代码。

感谢您的时间和耐心。

                   $page_name = 'about'; 
                    $id = "";
                    if (isset($_GET['id'])) {
                    $id = $_GET['id'];
  //display content based on the header       clicked
  } else {
  //display content of the current article       based on the id. I pass the numeric id              of the current article into the where       clause that selects the content
   //it displays
  }




 $query6 = mysql_query(" SELECT c.body          FROM comment AS c  
     INNER JOIN about AS a ON
     c.article_id = a.about_id
     WHERE   c.article_id =  3
     AND page_name = '".$page_name."'")

评论表

 CREATE TABLE IF NOT EXISTS`comment`(
     `comment_id` int(255),
     `article_id` int(255),
     `username` varchar(255) ,
     `page_name` 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,

旧文章的网址

http://localhost/root/about.php?id=3

而当前文章的 URL 是

 http://localhost/root/about.php

所以现在是当前文章不传递任何动态ID。如果我在查询中执行 '".$id."',然后单击当前文章,则不会显示任何内容。

4

1 回答 1

0
 WHERE   c.article_id =  3

应该是

 WHERE   c.article_id =  $id

尽管注意这很容易受到 SQL 注入的攻击。相反,您应该使用准备好的语句,将变量作为参数传递到其中,这些参数不会针对 SQL 进行评估。如果您不知道我在说什么,或者如何解决它,请阅读Bobby Tables的故事。

于 2012-05-06T05:48:57.117 回答