我的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行数据。
答案 0 :(得分:1)
您需要在开始$data = array()
循环
foreach
答案 1 :(得分:0)
我弄清楚原因,在我的控制器中我打电话
if($this->method){
$data['foo'] = $this->method;
}
因此该函数被调用了两次。
感谢您的帮助!