Codeigniter选择,计数并显示二维数组

问题描述

我有三个表:

worker_tb                        dept_tb
------------------               -----------------------
| id_worker| sex |               | id_dept | dept_name |
------------------               -----------------------
|    1     |  w  |               |    1    | Marketing |
|    2     |  m  |               |    2    | Manager   |
|    3     |  w  |               -----------------------
|    4     |  m  |
|    5     |  w  |
------------------

job_tb
--------------------------------
| id_job | id_worker | id_dept |
--------------------------------
|    1   |     1     |    1    |
|    2   |     2     |    2    |
|    3   |     3     |    2    |
|    4   |     4     |    1    |
|    5   |     5     |    1    |
--------------------------------

我的控制器:

public function count_sex()
    {
        $data['count_sex_dept'] = $this->m_worker->count_sex_dept();
        $this->load->view('count_sex',$data);
    }

我的模特:

public function count_sex_dept()
    {
        $this->db->select('*,COUNT(sex) as count_sex',FALSE);
        $this->db->from('worker_tb');
        $this->db->join('job_tb','job_tb.id_worker = worker_tb.id_worker');
        $this->db->join('dept_tb','dept_tb.id_dept = job_tb.id_dept');
        $this->db->group_by('sex');
        $query = $this->db->get();
        if ($query->num_rows() >0)
        {
            foreach ($query->result() as $data)
            {
                $count_sex_dept[] = $data;
            }
            return $count_sex_dept;
        }
    }

我的观点:

<div class="col-md-12">
    <?PHP foreach($count_sex_dept as $sd) {
        if ($sd->gender == '1'){$sex = 'Man';}
        else {$sex = 'Woman';}  
    ?>
    <div class="row">
        <div class="col-md-4">
        <label class="font-weight-bold"><?PHP echo $sex; ?></label>
    </div>
    <div class="col-md-8">
        <p><?PHP echo $sd->count_sex; ?></p>
    </div>
</div>
     <?PHP } ?>
</div>

错误消息:

错误号:1055

SELECT列表的表达式#1不在GROUP BY子句中,并且包含 非汇总列“ web_db2.tb_karyawan.id_kyw”,不是 功能上取决于GROUP BY子句中的列;这是 与sql_mode = only_full_group_by

不兼容

但是它不起作用。我应该怎么做才能显示此结果视图?

-----------------------------
| dept_name | male | female |
-----------------------------
| Marketing |  2   |    1   |
| Manager   |  1   |    1   |
-----------------------------

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)