Вы устанавливаете данные сеанса active_user_session
, используя приведенный ниже код в методе проверки входа в систему.
$active_user_session = array('id' => $result->id,'access_role'=>$result->access_role);
$this->session->set_userdata('active_user_session',$active_user_session);
Если идентификатор пользователя равен 8, то значение $result->id
выше будет равно 8, и это такжеозначает, что $this->session->userdata['active_user_session']['id']
в приведенном ниже коде вашей модели будет 8
public function update_last_login(){
$data = array(
'last_activity' =>date("Y-m-d H:i:s", STRTOTIME(date('h:i:sa'))),
'emp_id' =>$this->session->userdata['active_user_session']['id']
);
$this->db->where('emp_id', $this->session->userdata['active_user_session']['id']);
$this->db->update('tbl_current_login', $data);
}
Если текущее время равно 2018-09-16 08:59:16
, код вашей модели выше генерирует и выполняет следующий запрос
UPDATE tbl_current_login
SET last_activity = '2018-09-16 08:59:16', emp_id = 8
WHERE emp_id = 8
Однако этонеправильный запрос, потому что каждая запись tbl_current_login
добавляется каждый раз, когда пользователь входит в систему, и что вы действительно хотите обновить, это только самая последняя запись для этого конкретного пользователя.Это запрос, который вы ищете
UPDATE tbl_current_login
SET last_activity = '2018-09-16 08:59:16'
WHERE login_id = 5
Чтобы получить правильный запрос, измените эту часть кода в методе проверки входа в систему
$data_login = array('emp_id' =>$result->id ,'last_activity' =>date("Y-m-d H:i:s", STRTOTIME(date('h:i:sa'))));
$this->db->insert('tbl_current_login',$data_login);
$last_id=$this->db->insert_id();
if (!empty($last_id)) {
$active_user_session = array('id' => $result->id,'access_role'=>$result->access_role);
$this->session->set_userdata('active_user_session',$active_user_session);
return $result;
}
на этот
$data_login = array('emp_id' =>$result->id ,'last_activity' =>date("Y-m-d H:i:s", STRTOTIME(date('h:i:sa'))));
$this->db->insert('tbl_current_login',$data_login);
$last_id=$this->db->insert_id();
if (!empty($last_id)) {
// $last_id is the id of the tbl_current_login record inserted above
// pass it to the array below
$active_user_session = array('id' => $last_id,'access_role'=>$result->access_role);
$this->session->set_userdata('active_user_session',$active_user_session);
return $result;
}
затем измените код вашей модели на
public function update_last_login(){
$data = array(
'last_activity' =>date("Y-m-d H:i:s", STRTOTIME(date('h:i:sa')))
);
$this->db->where('login_id', $this->session->userdata['active_user_session']['id']);
$this->db->update('tbl_current_login', $data);
}