Сгруппировать похожие элементы в журнале активности

Я использую Codeigniter и у меня есть таблица, которая выглядит так:

+----+-------+------+-----------+--------------+
| id | user  | post |  action   |    added     |
+----+-------+------+-----------+--------------+
|  1 | ann   |    1 | commented | <date added> |
|  2 | sarah |    1 | commented | <date added> |
|  3 | carol |    1 | liked     | <date added> |
|  4 | susan |    1 | commented | <date added> |
|  5 | derek |    2 | liked     | <date added> |
|  6 | ann   |    1 | liked     | <date added> |
+----+-------+------+-----------+--------------+

На ленте активности у меня все сообщения выводятся в зависимости от времени. Самый недавний в начале.

Энн понравился пост 1
Дереку понравился пост 2
Сьюзен прокомментировала пост 1
Кэрол понравился пост 1
Сара прокомментировала пост 1
ann прокомментировал пост 1

Как лучше всего сгруппировать их по активности в сообщении?
например.

Энн и еще 1 человеку понравился пост 1
Дереку понравился пост 2
Сьюзен и еще 2 человека прокомментировали сообщение 1

Могу ли я получить всю информацию из базы данных, а затем отсортировать ее по php до загрузки страницы? или я выполняю какой-то GroupBy в запросе?

ТИА.

-1

Решение

Я не эксперт по codeigniter, но используя простой SQL-запрос, вы можете сделать это довольно легко. Попробуй это:

$query = "SELECT * FROM activity_feed_table_name GROUP BY post";

Я проверяю документацию codeigniter и ее активная реализация записи поддерживает предложение groupBy.

$this->db->get('yourActivityFeedTable');->group_by("post");

Я давно не использовал CI, поэтому точно не помню синтаксис, но это может привести вас на правильный путь. Дайте нам знать, если это работает!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]