2

だから私は私のウェブサイト(ブログスタイル)にコメントセクションを持っているので、すべての投稿にはコメントセクションがあります。

テーブルの「投稿」フィールド(post_id、isComment、title、timestamp、postなど)があります。

isCommentは、投稿にコメントがあるかどうかを示すブール値です。0の場合、コメントは検索または表示されません。1の場合、その投稿のコメントについてテーブルのコメントを照会します。

フィールド(comment_id、post_id、createdなど)を持つテーブル'comments'もあります。

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(...)、何かが実際に削除されたかどうかとその数を確認できます。

また、私はあなたの元のクエリを信じています、あなたの構文はREMOVEではなくDELETEであるべきだと思いますか?

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