PHP注释代码帮助

PHP注释代码帮助,php,mysql,database,comments,blogs,Php,Mysql,Database,Comments,Blogs,我正在编写我的第一个博客。在各种教程和其他论坛的帮助下,我成功地收集了一个半工作代码 现在我有了一个代码来获取和显示评论,但问题是协调哪些评论出现在哪个帖子上。我目前的设置是所有我的帖子都是HTML文件,评论都存储在数据库中。我还有一个表单,可以为每个帖子创建一个具有唯一帖子ID和标题的新行 我现在的基本数据库设置如下:1个数据库,2个表。一个post表和一个comments表。在comments表中,我有一般名称、网站、评论等,并且我还有一个唯一的ID,可以自动为每个评论递增。然后我有一个po

我正在编写我的第一个博客。在各种教程和其他论坛的帮助下,我成功地收集了一个半工作代码

现在我有了一个代码来获取和显示评论,但问题是协调哪些评论出现在哪个帖子上。我目前的设置是所有我的帖子都是HTML文件,评论都存储在数据库中。我还有一个表单,可以为每个帖子创建一个具有唯一帖子ID和标题的新行

我现在的基本数据库设置如下:1个数据库,2个表。一个post表和一个comments表。在comments表中,我有一般名称、网站、评论等,并且我还有一个唯一的ID,可以自动为每个评论递增。然后我有一个post_id,它应该与指定的post匹配

在post表上,我只有两个字段:entry_id和title。标题由我手动设置,条目id自动递增。注意:条目本身不存储在数据库中

因此,我目前的问题是如何为每页评论设置post_id,以及如何将条目id与实际的post相关联。我希望这不会太令人困惑。非常感谢你的帮助


> imase

< P>我认为你应该考虑重构你的代码来将帖子存储在数据库中。

从那里,您将有一个页面(
http://mysite/showpost.php?post_id=5
),显示您的帖子(psuedo-code'ish):


您应该遵循Ian的建议,重构代码以使用表。否则,在创建PostHTML时,您将需要硬编码一些PHP

$actualPostId=1234;//你从数据库里得到这个
文件内容($filename,$rest\u of theu html”);

学习“自力更生”,获得你想要的东西,并在此过程中学习一些东西,这对你来说是一件好事

您应该使用与文章ID匹配的外键为注释创建一个表


然后在显示您的评论时,执行查询以获取与该文章ID相关的所有评论。

如果我正确理解了问题,我认为您只需要将
条目ID
作为隐藏字段添加到评论表单中,当有人发布评论时,在插入评论表时将其作为
发布ID
包含。我想你已经失去了表格之间的链接

嗯,至少是一个警告,您显然应该注意SQL注入问题…PS-注意SQL注入问题。除了SQL注入之外,我已经编写php多年了,我从来没有在用于插值的字符串中看到大括号。酷!现在,当我不想使用数组时,我不需要concat字符串。爱,所以每天都要学习新的东西+1.(回答也很好)拜伦,可能想复习一下=P@OP:检查这个问题,了解您应该注意的漏洞(不仅仅是SQL注入):正如Ian所说,重构可能是正确的。请记住,如果您希望编辑标题,则使用id存储标题将非常困难。据我所知,它可能会破坏条目id和标题之间的链接,以及您实际存储条目数据的位置。@Tchalvak:您的确切意思是什么?标题和内容都只存储一次,所以这里不应该有任何完整性问题…哦,我只是想到你可能,只是可能正在谈论以标题作为文件名存储帖子?我喜欢你的想法,因为这是我以前尝试过的。让我望而生畏的问题是,有没有设置条目ID(评论上的帖子ID引用的ID)而不进行硬编码?我该怎么做?如果这是一个“愚蠢的问题”,请原谅,但我对PHP是新手(正如您可能知道的),这是一个有效的解决方案。理想情况下,虽然我希望这是自动设置为我,而不是我必须手动设置它每一次。
<?php

// establish database connection here

// Simple SQL injection prevention:
foreach ($_REQUEST as $key => $value)
{
  $_REQUEST[$key] = mysql_real_escape_string($value);
}

// Get the appropriate post from the posts table.
$query = "SELECT post FROM posts WHERE post_id={$_REQUEST['post_id']}";
$result = mysql_query($query);
$row = mysql_fetch_assoc($query);

echo $row['posts'];

// Get the appropriate comments from the comments table.
$query = "SELECT comment FROM comments WHERE post_id={$_REQUEST['post_id']}";
$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result))
{
  echo "Comment: {$row['comment']}";
}

// close connections, etc.    

?>
$actualPostId = 1234; // you get this from the database
file_put_contents ($filename, "<?php \$postID= $actualPostId;?> $rest_of_html");