データベース内の単一行から各いいねの数値を表示するにはどうすればよいですか?
例えば:
データベースからの画像は、データベース行のすべての「いいね」と「ニュートラル」からの数値を与える php のページに結果をもたらします。
Like = 1 Neutral = 2
まず、テーブルを再設計します。私はあなたのためにこれを行いますが、将来の努力のために、あなたは本当に正規化を調べる必要があります
ユーザーの応答ごとに 1 行を作成するのではなく、回答ごとに 1 行を作成し、その ID を付けて誰に属するかを識別します (サンプルではこれを示していませんが、あなたの列)。
+----+------+------------+------------------+
| Id | User | QuestionID | QuestionResponse |
+----+------+------------+------------------+
| 1 | 45 | 1 | Like |
| 2 | 45 | 2 | Neutral |
| 3 | 45 | 3 | Like |
| 4 | 46 | 1 | Dislike |
| 5 | 46 | 2 | Dislike |
+----+------+------------+------------------+
このような構造により、はるかに簡単にカウントを行うことができます
例えば:
SELECT COUNT(QuestionResponse) FROM QuestionTable WHERE QuetstionResponse = 'Like'
特定のユーザーが必要な場合はAND UserID = 46
、末尾に追加します。
現在、このテーブルは正規化を使用しています - データの重複がほとんどないため、ユーザーの詳細は別のテーブルに保存されます。これらの各行に個人情報を追加する必要はありません。これは、すでに他の場所に存在するためです。結合を介してそのデータにアクセスできます。ユーザー テーブルが次のようになっているとします。
+----+----------+-----------+----------+
| Id | Username | FirstName | LastName |
+----+----------+-----------+----------+
| 45 | Fbloggs | Fred | Bloggs |
| 46 | Charray | Charlotte | Harray |
| 47 | Tmoseby | Ted | Moseby |
| 48 | Dknute | Deunan | Knute |
+----+----------+-----------+----------+
結合を介してユーザー情報にアクセスできます。
SELECT Users.Username, Count(QuestionResponse) FROM table
INNER JOIN Users ON QuestionTable.User = Users.Id
WHERE QuestionResponse = 'Like'
これは出力します
+----------+-------+
| Username | Count |
+----------+-------+
| Fbloggs | 2 |
+----------+-------+
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加