2

所以我的网站上有一个评论部分(博客风格),所以每个帖子都有一个评论部分。

我有一个表“帖子”字段(post_id、isComment、标题、时间戳、帖子等)

isComment 是一个布尔值,表示帖子是否有任何评论。如果为 0,则不搜索或显示评论,如果为 1,则查询表评论以获取该帖子的评论。

还有一个表“comments”,其中包含字段(comment_id、post_id、created 等)

post_id 是评论对应的帖子。

目前删除评论的查询是:

 "REMOVE FROM comments WHERE comment_id = '$id';"

我想知道的是,是否有任何方法可以确定删除的评论是否是与该帖子对应的最后一条评论?如果是这样,那么我会将该帖子的 isComment 值更改为 0。

4

3 回答 3

1

每次删除评论后,您都可以触发查询以查找该帖子的评论数量。

就像是。

select count(*) from comments where post_id = (select post_id from comments where comment_id='$id')

// 如果需要,您可以优化查询。

于 2012-06-12T05:35:36.390 回答
0

查询给定帖子的任何评论。如果没有返回任何行,请使用另一个查询重置您的 isComment 标志。(可能有一种更有效的方法来使用数据库来使用其函数来计算行数并采取相应的行动。)

于 2012-06-12T05:33:22.297 回答
0

有几种方法可以解决这个问题。首先,您可以只计算剩下的数量并采取相应的行动:

SELECT count(*) FROM comments WHERE post_id = '$id'

或者,如果您在删除评论时已经有评论计数,您可以调用mysql_affected_rows(...)mysqli_affected_rows(...)确定是否实际删除了某些内容以及删除了多少。

另外,我相信您的原始查询,我相信您的语法应该是 DELETE 而不是 REMOVE?

DELETE FROM comments WHERE comment_id = '$id';
于 2012-06-12T05:33:51.110 回答