Codeigniter在线访客我可以看到怎么样?

时间:2016-08-09 08:27:34

标签: php codeigniter

我想在网站的管理面板中显示在线用户。感谢所有回复的人。

enter image description here

2 个答案:

答案 0 :(得分:0)

在users表上,您可以创建一个名为online

的列
Name    Type     Length / Val
online  tinyint     1
  

然后当用户登录时。将该用户在线列更新为1

然后在模型函数

public function countOnline() {
   $this->db->where('online', '1');
   $query = $this->db->get('users');

   return $query->num_rows();
}
  

用户退出时您需要将该用户在线列设置为0

模型

文件名:Users_model.php

<?php

class Users_model extends CI_Model {

    public function __construct() {
        parent::__construct();
    }

    public function countOnline() {
        $this->db->where('online', '1');
        $query = $this->db->get('users');

        return $query->num_rows();
    }
}

控制器

文件名:Dashboard.php

<?php

class Dashboard extends CI_Controller {

public function __construct() {
    parent::__construct();
    $this->load->model('users_model');
}

public function index() {
    $data['online_users'] = $this->users_model->countOnline();

    $this->load->view('header');
    $this->load->view('dashboard', $data);
    $this->load->view('footer');
}

}

要在线查看新用户,每次要在线查看新用户时都必须重新加载页面。

有些脚本可以每隔几分钟重新加载特定的div。

希望这会给你一个想法

答案 1 :(得分:0)

首先这是控制器,所以把这个代码放在你的控制器函数中, 比放在模型文件中的模型功能代码。

<?php
//controller function 
function total_user()
{
    /*load your model*/

    $data=$this->model_name->total_users_number();

    echo $data;

}

//model function 
function total_users_number()
{
   /*query*/ 
     $sql = "SELECT COUNT(*)
                FROM `users` where user_status='online'  // here your table name             
        $query = $this->db->query($sql);
        return $query->num_rows();
}
?>