2010-07-27 42 views
0

我意识到这是一个抽象的问题,有几个答案,但我对于从哪里开始感到不知所措。我想为每个博客文章都有一个单独的评论区域。每次更新代码以包含最新条目时,是否应该为每个条目的注释手动设置不同的表格?什么是有效的方法来编码单独的评论区域?

回答

2

与结构类似评论创建新表(当然,你可以定制你的需求):


Comments 
    id INT NOT NULL auto_increment, 
    blog_id INT NOT NULL, 
    author_id INT NOT NULL DEFAULT 0, 
    comment text NOT NULL, 
    added_date DATETIME NOT NULL 

的AUTHOR_ID链接到用户表登录的用户,0一位匿名用户。我希望其他一切都应该是自我解释的。

+0

不应该'blog_id'是'post_id'什么的? >我想每个**博客文章都有一个单独的评论区** – Svish 2010-07-27 14:01:48

+0

我的回复只是一个松散类型的设置。就像我说的那样,它应该是自我解释的。如果你的博客设置为“帖子”,那么是的,这将是post_id。 – 2010-07-27 15:07:09

0

我不确定你在做什么......但听起来你想对每个帖子有特定的评论。如果是这种情况,只需在评论表中为“post_id”或类似内容创建一个字段即可。然后在每个帖子页面上使用SELECT语句来获取该特定post_id的注释。

0

只需在其中一个字段中存储数据库表格即可存储帖子ID。一些类似以下内容:

CREATE TABLE blog_comments (
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    author_id INT(10) UNSIGNED NOT NULL DEFAULT '0', 
    post_id INT(10) UNSIGNED NOT NULL, 
    comment TEXT NOT NULL, 
    added_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
); 

然后,你可以简单地查询发表评论像这样:

$pid = 13; // or whatever your post ID is; could be a $_GET value 
$sql = "SELECT * FROM comments WHERE post_id = '$pid' ORDER BY added_on DESC"; 

当然,一定要清理上面的查询,因为你不希望任何一个通过他们感兴趣的价值$pid。你需要确保它是一个数字,只有一个数字。

+0

例如'$ pid =(int)$ _GET ['pid'];' – Svish 2010-07-27 14:04:05

+0

如何设计我的html表单以发送我选择的帖子ID变量的值?我知道我需要使method =“get”,但我不想创建一个文本区域,我想传递一个数字或一个包含数字的变量。 – Jimmy 2010-08-06 19:00:01

+0

带有隐藏字段。 ' id;?>”/>'其中'$ post-> id'是您使用回显实际发帖ID的位置您已经用来从数据库中提取发布数据的方法。 – 2010-08-09 12:45:43

相关问题