2013-02-16 31 views
0

我使用Codeigniter的Session類將會話值存儲在數據庫中。包含在userdata字段內的是用戶的用戶名和其他值。Codeigniter會話 - 訪問來自DB的所有用戶的用戶數據值

我想從每個userdata字段獲得username,其中lastactivity>> =假設5分鐘。

我能想到的唯一辦法做到這一點是:

  • 搜索在最後5分鐘的活躍用戶
  • 獲得用戶數據返回的每個行
  • unserialise用戶數據
  • 提取用戶名

但是,這似乎是漫長的道路。有沒有更清潔/更好的方法來做到這一點?

+0

您是否希望將數據庫中的所有用戶名等數據存儲到CI會話的最後一個活動> x? – sandip 2013-02-16 06:10:15

+0

DB中的userdata字段將包含一些不同的值,我只需要提取其中的一個。 – 2013-02-16 06:20:18

回答

1

試試看看這個代碼。

$query = $this->db->select('user_data')->get('ci_sessions'); 

$user = array(); /* array to store the user data we fetch */ 

foreach ($query->result() as $row) 
{ 
    $udata = unserialize($row->user_data); 

    /* put data in array using username as key */ 
    $user[$udata['user_name']] = $udata['user_role']; 
} 

從結果數組中,你可以獲取所需的信息。

+0

這與我列出的解決方案完全相同,並表示如果可能,我正在儘量避免。我意識到這可能是必要的,但只能作爲最後的手段。 – 2013-02-16 12:04:14