在activerecord codeigniter中分组

时间:2014-02-13 18:08:47

标签: php sql codeigniter activerecord

我在codeigniter中使用activerecord。 我有一个看起来像这样的数据库:

+------------+--------------|----------+
|clientName  | websiteNumber|langNumber|
|------------|--------------|----------|
|john        | 1            | 2,5      |
|john        | 2            | 2,3      |
|mark        | 1            | 15,5     |
|steve       | 1            | 5        |
|steve       | 2            | 5        |
|amy         | 1            | 15       |
+------------+--------------+----------+

我想按clientName分组,然后按websiteNumber分组,以便视图看起来像这样:

  john
    websiteNumber 1 langNumber 2,5
    websiteNumber 2 langNumber 2,3
  mark
    websiteNumber 1 langNumber 15,5
  steve
    websiteNumber 1 langNumber 5
    websiteNumber 2 langNumber 5
  amy
    websiteNumber 1 langNumber 15

我并不担心HTML或如何解析结果。我想知道使用活动记录使用一个查询的最佳方法是让它返回一个我可以在视图中循环的数组。

我想到了一些hacky方式 - 比如在foreach循环中查询,但感觉不对,我希望有更好的方法。

2 个答案:

答案 0 :(得分:0)

您需要使用order_by方法:

$this->db->order_by('clientName', 'asc');
$this->db->order_by('websiteNumber', 'asc');

$query = $this->db->get('client');

return $query->result_row();

答案 1 :(得分:0)

我不是活跃的记录专家,但我想您应该在客户名称上使用group by,然后使用group_concat结合php explode进行查看。

我对活动记录的体验是,您应该期望与mysql_fetch_assoc输出相同的输出。它不像Doctrine

那么成熟