gpt4 book ai didi

php - 如何在codeigniter的foreach循环中处理sql查询

转载 作者:行者123 更新时间:2023-11-29 06:15:54 25 4
gpt4 key购买 nike

function emp_attendence() {
$dept = $this->session->userdata("department") ;
function filter($value)
{
$dept = "'$value'" ;
return $dept;
}
$query = $this->db->query('select emp_id from employee where department IN ('.implode( ",",array_map("filter",$dept) ) .') order by emp_id asc');
$emp = $query->result_array() ; // echo '<pre>' ; print_r($emp[0]['emp_id']) ; exit();



foreach( $emp as $emp_id) {
foreach( $emp_id as $id) {
$query = "SELECT count(attendence) as total_attendence
FROM employee
INNER JOIN attendence ON employee.emp_id = attendence.employee_id
WHERE emp_id='$id' AND MONTH(date)=MONTH(CURDATE())";

$query = $this->db->query($query);
$query = $query->result_array() ;
}
}

return $query ;
}

上面的代码是 codeigniter 中的一个模型,我的目标是获得数据库中每个员工的总出勤率,代码运行良好,但我通过查询而不是所有记录获取我最后一条记录返回的值!!!

最佳答案

实际上 $query = $query->result_array() ; 是一个变量赋值,因为它在循环中,所以它一次又一次地覆盖同一个变量。所以你只得到了最后的数据。

像下面这样:-

foreach( $emp as $emp_id) { 之前定义 $attendence_array = array();

代替 $query = $query->result_array() ; 编写 $attendence_array[] = $query->result_array() ;

然后将 return $query ; 写成 return $attendence_array ;

然后通过打印出来检查 $attendence_array 是否符合您的要求

关于php - 如何在codeigniter的foreach循环中处理sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35968170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com