например, я считаю, чтобы показать подключенных администраторов и подключенных пользователей
База данных
в пользователях я добавляю таблицу: [status] [int] [1]
у пользователей также есть: [роль] [varchar] [255]
Обновить статус до 1 (onligne) при проверке логина ()
if($this->model_users->can_log_in($email,$pass)){
$update = array('status' => 1);
$this->model_users->update_onligne($email,$update);
redirect('main/members');
и модель:
public function update_onligne($email,$update){
$this->db->where('email',$email);
$this->db->update('users',$update);
return true;
}
Обновление статуса в автономном режиме при выходе из системы ()
Контроллер выхода из системы:
public function logout(){
$id = $this->session->userdata('id');
$update = array('status' =>0);
$this->model_users->logout($id,$update);
$this->session->sess_destroy();
redirect('main/login');
}
Модель выхода из системы:
public function logout($id,$update){
$this->db->where('id',$id);
$this->db->update('users', $update);
return;
}
Граф Онлинье:
Контроллер:
$data['admin_onligne'] = $this->model_users->count_onligne_admin();
$data['user_onligne'] = $this->model_users->count_onligne_users();
$this->load->view('template/page_left',$data);
Модель:
public function count_onligne_admin(){
$query = $this->db->query('SELECT COUNT(status) AS enligneadmin FROM users WHERE status=1 AND role="admin"')->row_object();
return $query->enligneadmin;
}
public function count_onligne_users(){
$query = $this->db->query('SELECT COUNT(status) AS enligneuser FROM users WHERE status=1 AND role="etudiant"')->row_object();
return $query->enligneuser;
}
Зритель
<span><?php echo $user_onligne ;?> User en ligne</span>
<span><?php echo $admin_onligne ;?> Admin en ligne</span>