如何将id传递给foreach-loop以获取所有相关记录?

时间:2016-01-09 12:08:19

标签: php mysql arrays codeigniter

我想在我的模型方法中传递where条件,所以我想将我在数组中获取的所有emp_id传递给每个循环,并希望在我的模型方法中将其传递给where条件。

方案是:我有一个表用户,其中包含我所识别的所有用户名为 emp_id 的唯一ID。现在我有一个名为daily_data2的表,其中还有使用emp_id的用户登录和注销。所以我用emp_id of daily_data2

映射了用户的emp_id

这是我的控制器方法:

 public function index()
 {
     $user_type = $this->session->userdata('user_type');
     if($user_type=="admin")
     {
      $users = $this->data['users'] = $this->user_m->get();
      foreach ($users as $user) 
      {
        $user->emp_id;
        $this->data['attendances'] = $this->attendance_m->all_login($user->$emp_id);
        $this->data['attendances_logouts'] = $this->attendance_m->all_logout($user->$emp_id);        
      }
        $this->data['subview'] = 'admin/dashboard/index';
        $this->load->view('admin/_layout_main',$this->data);

     }

在我的模型方法中,我有两个方法,一个获取登录数组,另一个是我传递给视图的注销数组,我计算了用户的总工作时间。

所以现在我想在我的模型方法中传递emp_id以动态地获取每个用户的登录和注销。

这是模特:

 public function all_login($emp_id)
{

      $this->db->where->('emp_id',$emp_id);
}

1 个答案:

答案 0 :(得分:1)

修改您的功能(保留备份):

<?php
public function index()
{
    $user_type = $this->session->userdata('user_type');
    if($user_type=="admin")
    {
        $users = $this->user_m->get();
        $all_empids = implode(',', $users['emp_id']);
        $data['all_empids'] = $all_empids;
        $this->data['subview'] = 'admin/dashboard/index';
        $this->load->view('admin/_layout_main',$this->data);
    }
}

public function get_login_or_logout($eid)
{
    $q = $this->db->query("SELECT entry FROM daily_data2 WHERE emp_id = $eid");
    if($q->num_rows() > 0) {
        $d = $q->row_array();
        $temp = $d['entry'];
        if($temp > 100) {
            return 'login';
        } else {
            return 'logout';
        }
    } else {
        return 'No data found';
    }
}

?>

在视图中

<?php
$explode_empids = explode(',', $all_empids);
foreach ($explode_empids as $eid) {
    $check_login_or_logout = $this->user_m->get_login_or_logout($eid);
    echo $check_login_or_logout;
}
?>