まず、「いいね」をクリックすると、投稿に割り当てられたデータベース内にエントリがあります。したがって、投稿のIDが1234567890であるとすると、データベーステーブル内にそのようなものが表示されます。
PostID UserID
1234567890 54543534
1234567890 75231415
1234567890 78653421
1234567890 99653221
// Query example
SELECT COUNT(*) FROM LikeTable WHERE PostID = 1234567890
// Return 4
まず第一に、あなたはすべてのように数えます、ここに4つあります。
その後、現在ログに記録されているユーザーのUserIDがデータベースにあるかどうかを確認します。
- はい。彼が言っています。
- いいえ、彼は好きではありませんでした。
私たちがユーザー54543534だとしましょう。私はデータベースにいるので、投稿が気に入りました。
// Query example
SELECT PostID FROM LikeTable WHERE PostID = 1234567890 AND UserID = 54543534 LIMIT 1
// Return 1
私たちがユーザー8748977777であるとしましょう。私はデータベースにいないので、投稿が気に入らなかった。
// Query example
SELECT PostID FROM LikeTable WHERE PostID = 1234567890 AND UserID = 8748977777 LIMIT 1
// Return 0
したがって、IF/ELSEステートメントは次のようになります。
IF I liked
You and COUNT - 1 others like this.
ELSE
COUNT like this. Click to like.
編集 :
私はそのような何かが仕事をするだろうと思います:
SELECT COUNT(PostID) AS All, SUM(UserID = X) AS Liked FROM LikedTable WHERE PostID = X