【问题标题】:view all products using group by in codeigniter在 codeigniter 中使用 group by 查看所有产品
【发布时间】:2015-01-27 12:38:05
【问题描述】:

我有一个客户,他有一个员工列表,他想显示所有相同类别的员工(在组中),如果我无法解释,我很抱歉,我会尽力解释

----------------------------
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

我正在使用 Codeigniter 2.2.0

【问题讨论】:

  • pivot 可能会帮助你...stackoverflow.com/questions/18629155/…
  • 你在这里形成了错误的查询。使用 group by 子句将不起作用。
  • 您可以在'e_pos'上使用order by子句。它将所有具有相同类别的员工一起列出。比如,SELECT e_pos, e_id, e_name FROM dv_test ORDER BY e_pos

标签: php mysql codeigniter activerecord


【解决方案1】:

您可以使用此 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

你会得到这样的表格,然后你可以迭代显示结果:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多