在codeigniter中查看使用group by的所有产品

时间:2015-01-27 12:38:06

标签: php mysql codeigniter activerecord

我是这个有员工名单的客户,他想要显示同一类别的所有员工(在组中),如果我无法解释,我很抱歉,我会尝试解释

----------------------------
id | e_id | e_pos   | e_name
-----------------------------
 1 | 142  |   dev   | abc
 2 | 143  |  sr.dev | bac
 3 | 144  |  intern | jlk
 4 | 145  |   dev   | jlsd
 5 | 146  |   dev   | asdf
 6 | 147  |  sr.dev | adsc
 7 | 148  |  intern | mlkn
 8 | 149  |  sr.dev | vjll
 9 | 150  |   dev   | knmk
10 | 151  |   dev   | jlkm
----------------------------

如何显示输出

Number of dev(5) 1) abc 2) jlsd 3) asdf 4) knmk 5) jlkm Number of intern(2) 1) jlk 2) mlkn Number of sr.dev(3) 1) bac 2) adsc 3) vjll 现在问题是我已经尝试了这段代码

$this->db->select('e_id,e_pos,e_name');
$this->db->group_by('e_pos');
$query = $this->db->get('emp'); // table name
if($query->num_rows() > 0)
{
    return $query->result();
}

但是上面的代码不起作用,它只是显示dev和dev的数量,我希望看到所有的dev数据。

dev

我正在使用Codeigniter 2.2.0

1 个答案:

答案 0 :(得分:0)

您可以使用此CI代码获取您的数据(此link上的详细文档):

$query = $this->db->query("YOUR QUERY");

然后传入以下查询:

select test.e_pos, test.e_name, inn.cnt 
from test
inner join 
    (SELECT e_pos, e_name, count(e_pos) as 'cnt' 
    FROM `test`
    group by e_pos ) inn on test.e_pos = inn.e_pos 
order by test.e_pos

您将获得这样的表格,然后您可以迭代以显示结果:enter image description here

foreach ($query->result() as $row)
{
  // echo data as desired 
}