Я пытаюсь получить все посты в своей базе данных социальных сетей.
Он получает весь список публикаций информации о пользователях, комментариев и лайков.
Теперь я успешно получилобщее количество комментариев к каждому сообщению, но у него возникли проблемы с подсчетом всех лайков каждого сообщения.
Вот мой код.
<?php
public function get_all_post(){
$category = $this->input->post('category', true);
$this->db->select('u.*,c.parent_id,b.post_id, count(b.ID) as total, count(c.ID) as totalLIKEs');
$this->db->where('u.category', $category);
$this->db->order_by("u.create_at", "DESC")
->from('gb_post as u')
->join('gb_comments as b', 'u.ID = b.post_id', 'LEFT')
->join('gb_likes as c', 'u.ID = c.parent_id', 'LEFT')
->group_by('u.ID');
$this->db->limit(10);
$result = $this->db->get();
if($result->num_rows() > 0){
return $result->result_array();
} else {
return false;
}
}
?>
Вот мои таблицы SQL
Почтовый стол
+----+---------------+-----------------+
| ID | post_content | user_email |
+----+---------------+-----------------+
| 1 | post1 | user1@email.com |
| 2 | post2 | user2@email.com |
| 3 | post3 | user3@email.com |
+----+---------------+-----------------+
Таблица комментариев
+----+---------+-----------------+-------------------+
| ID | post_id | comment_content | reader_email |
+----+---------+-----------------+-------------------+
| 1 | 3 | test comment1 | reader1@email.com |
| 2 | 3 | test comment2 | reader2@email.com |
| 3 | 2 | test comment3 | reader3@email.com |
| 4 | 1 | test comment4 | reader3@email.com |
+----+---------+-----------------+-------------------+
И мойТаблица лайков
+----+----------+-------------------+
| ID | post_id | reader_email |
+----+----------+-------------------+
| 1 | 3 | reader1@email.com |
| 2 | 3 | reader2@email.com |
| 3 | 3 | reader7@email.com |
| 4 | 3 | reader3@email.com |
+----+----------+-------------------+
Пример поста с идентификатором 3 будет иметь в общей сложности 2 комментария и 4 лайка.
Проблема заключается в количестве totalComment
также считается totalLIKEs