如何使用codeigniter从mysql中获取多个多维数组中的数据?

Posted

技术标签:

【中文标题】如何使用codeigniter从mysql中获取多个多维数组中的数据?【英文标题】:How to fetch data in multiple multidimensional array from mysql using codeigniter? 【发布时间】:2022-01-16 17:44:43 【问题描述】:

我正在编写一份报告,将根据部门明智地获取所有员工及其工资详细信息。我已经使用多维数组成功地按部门获取了员工,但现在我需要在该员工详细信息多维数组上获取employees_salary_detail。这意味着第一个部门->emp_detail->salarydetail。我已成功获取前两部分,但现在我在获取该 emp_detail 数组中的最后一个数组时遇到了问题。

public function getDepartmentReport()
        $employee = $this->db->select('*')
                ->from('departments')
                ->where('project_id', $this->session->userdata('client_id'))->get()->result_array();

                $data = array();

        foreach($employee as $m => $v)
       
            $v['emp_detail'] =  $this->db->select('first_name,employee_code,employees_salary.*')
                                         ->from('employees')
                                         ->join('employees_salary', 'employees_salary.employee_id = employees.id')
                                         ->where('employees.department_id',$v['id'])
                                         ->where('employees_salary.month', 'Nov')
                                         ->get()->result_array();
                                         $data[] = $v;         
   

            foreach($v['emp_detail'] as $m => $s)
                $s['salary_detail'] = $this->db->select('*')
                ->from('employees_salary_detail')->where('employees_salary_detail.salary_id', $s['id'])
                ->get()->result_array();  
                $data[] = $s;         

            
            
        
        return $data;
   

但是现在它正在创建单独的数组来显示不在那个 emp_detail 数组中的工资详细信息。 我不知道我在哪里犯错。请帮我解决这个问题。

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

使用 Join 方法根据公共键连接数据库中的所有三个表。我可以看到你已经加入了两个表,就像你可以加入多个表并创建一个数据数组一样。

$qry = $this->db->query("SELECT  * FROM product_section INNER 
JOIN products ON product_section.ps_prid = products.prid INNER 
JOIN wishlist ON wishlist.wish_product_id = products.product_id 
INNER JOIN customer ON wishlist.wish_user_id = customer.cust_id
INNER JOIN brands ON brands.brand_id = products.product_brand
WHERE customer.cust_id = '$cid' GROUP BY  
product_section.ps_prid");

像上面这样的代码

【讨论】:

以上是关于如何使用codeigniter从mysql中获取多个多维数组中的数据?的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter php 和 jquery - 如何从多个表中获取数据并通过 ajax 返回

无法从codeigniter中的mysql表中获取一些特殊字符

使用 PHP/CodeIgniter 在 MySQL 中获取最后执行的查询

如何在codeigniter中将ajax选择的依赖下拉选项传递给mysql数据库

使用 CodeIgniter 从 mysql 数据库中随机记录

Codeigniter 活动记录从 mysql 获取记录,其中 id 等于数组中的记录