如何检查记录被删除是否是最后一条记录留下了MySQL PHP

时间:2012-06-12 05:24:54

标签: php mysql

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

我有一个表'帖子'字段(post_id,isComment,title,timestamp,post等)。

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

还有一个表'comments',其中包含字段(comment_id,post_id,created等等。)

post_id是评论对应的帖子。

目前删除评论的查询是:

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

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

3 个答案:

答案 0 :(得分:1)

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

喜欢的东西。

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

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

DELETE FROM comments WHERE comment_id = '$id';