将活动日志中的类似Feed项分组

时间:2014-12-04 03:08:55

标签: php mysql codeigniter group-by

我正在使用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> |
+----+-------+------+-----------+--------------+

在活动Feed上,我根据时间输出了所有帖子。最近的第一次。

Ann喜欢帖子1 德里克喜欢帖子2 苏珊评论了第1篇帖子 carol喜欢帖子1 莎拉评论了第1篇 ann评论了第1篇

如何通过活动对帖子进行分组? 例如

Ann和另外1人喜欢的帖子1 德里克喜欢帖子2 Susan和另外2人对第1篇评论

我最好从数据库中获取所有信息,然后在页面加载之前通过php对其进行排序?或者我在查询中执行某种GroupBy?

TIA。

1 个答案:

答案 0 :(得分:0)

我不是codeigniter专家,但使用原始SQL查询,你可以很容易地做到这一点。试试这个:

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

我正在检查codeigniter文档,其活动记录实现支持groupBy子句。

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

我在相当长一段时间内没有使用CI,所以我不记得确切的语法,但这可能会让你走上正轨。如果有效,请告诉我们!