我正在编写我的第一个博客。在各种教程和其他论坛的帮助下,我设法收集了半工作代码。
现在我有一个代码可以显示评论,但问题是协调哪些评论发布在哪个帖子上。我目前的设置是我的所有帖子都是HTML文件,评论存储在数据库中。我还有一个表单,用于创建一个新行,每个帖子都有唯一的帖子ID和标题。
我现在的基本数据库设置如下:1个数据库,2个表。邮政表和评论表。在评论表中,我有一般名称,网站,评论等,我还有一个唯一的ID,可以自动增加每个评论。然后我有一个post_id应该与指定的帖子匹配。
在帖子表上,我只有两个字段:entry_id和title。标题由我手动设置,entry_id自动递增。注意:条目本身不存储在数据库中。
所以我当前的问题是如何为每个评论页面设置post_id以及如何将entry_id与实际帖子相关联。我希望这不会太混乱。非常感谢您的帮助!
-iMaster
答案 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
进入评论表。我认为你之间的表格之间缺少链接。