PHP评论代码帮助

时间:2009-11-25 20:15:01

标签: php mysql database comments blogs

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

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

我现在的基本数据库设置如下:1个数据库,2个表。邮政表和评论表。在评论表中,我有一般名称,网站,评论等,我还有一个唯一的ID,可以自动增加每个评论。然后我有一个post_id应该与指定的帖子匹配。

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

所以我当前的问题是如何为每个评论页面设置post_id以及如何将entry_id与实际帖子相关联。我希望这不会太混乱。非常感谢您的帮助!

-iMaster

4 个答案:

答案 0 :(得分:7)

我认为您应该考虑重构代码以将帖子存储在数据库中。

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

<?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.    

?>

我的PHP非常生疏,但这可以让您对完成所需内容所需的数据结构和代码有所了解。

答案 1 :(得分:1)

有助于您学会“自己动手”并获得您想要的东西,并在此过程中学到一些东西。

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

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

答案 2 :(得分:0)

您应该遵循Ian的建议并重构您的代码以使用表格。否则,在创建post html时,您需要对一些PHP进行硬编码。

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

答案 3 :(得分:0)

如果我正确地阅读问题,我认为您只需将entry_id添加到评论表单作为隐藏字段,当有人发表评论时,在插入时将其包含为post_id进入评论表。我认为你之间的表格之间缺少链接。