foreach($ q-> result()as $ row)在结果集中循环两次

时间:2015-03-30 13:16:08

标签: php mysql model-view-controller foreach codeigniter-2

我的foreach循环似乎循环了两次!我在我的CodeIgniter项目的模型中有这个:

public function check_late_in($late){
    $this->db->select('users.title, users.firstname, users.lastname, users.email_address, clock_in_out.user_id, clock_in_out.loggedin');
    $this->db->join('users', 'clock_in_out.user_id = users.id');
    $this->db->where('UNIX_TIMESTAMP(loggedin) >= ', strtotime($late));
    $q = $this->db->get('clock_in_out');

    foreach($q->result() as $row){

        $data = array();

        $data = array(
            'user_id'  => $row->user_id,
            'assignee' => 88,
            'description' => 'You were LATE!',
            'created'     => date('Y-m-d H:i:s')
        );

        $q = $this->db->insert('notifications', $data);
    }

    if($q){
        return true;
    }
    return false;

}

如果我在查询后转储$ q-> result(),我得到2个结果。但是在循环中数据被复制,因此在执行后我得到的是4行而不是2行数据。

2 个答案:

答案 0 :(得分:1)

您需要在开始$data = array()循环

之前声明foreach

答案 1 :(得分:0)

我弄清楚原因,在我的控制器中我打电话

if($this->method){
    $data['foo'] = $this->method;
}

因此该函数被调用了两次。

感谢您的帮助!

相关问题