2011-05-11 30 views
4

我正在关注使用CI/jQuery进行分页的教程。在本教程中,他们通过做得到行总数:在数据库中计算行

$config['total_rows'] = $this->db->count_all('tblUsers');

他们得到用户的总数来定义分页。但是,他们获得所有用户。在我的应用程序中,我只需要为其分配特定值的用户,在这种情况下是“角色”。

我只需要在我的DB中role = 1的用户。

我已经尝试了一些事情->count()(来自CI的活动记录DB类)或尝试count()检查数组有多少“行”,但我一直未能得到我需要的结果。我也尝试做一个定期查询:select count(*) from tblusers where role = 1,然后以某种方式试图抓住它返回的数量,但唉。

$config['total_row'] = $this->db->query("select count(*) from tblusers where role = '1'")->result_array(); 

给了我下面的数组:

Array ([0] => Array ([count(*)] => 2))

不过,我似乎无法能够读出count(*)指数..

Message: Undefined index: count(*)

我希望这是有道理的。基本上我试图做类似的东西..

$this->db->where('role', 1)->get('tblUsers')->count()

可悲的是,这并不工作:d提前

感谢。任何帮助表示赞赏。

回答

5

你可以简单地别名count(*)结果列:

select count(*) as number_of_entries from tblusers where role = '1' 

现在你可以使用number_of_entries作为重点从结果数组访问所需的值。

+0

Heehee,我现在感觉这么愚蠢的忽视了。总是试图以更难的方式做事情:(谢谢! – cabaret 2011-05-11 13:22:30

2

并不积极,但看起来您只需要给该列起个名字即可。例如,

... = $this->db->query("select count(*) as colname from tblusers where role = '1'")->result_array(); 

我怀疑这会起作用。

+0

谢谢。这工作,思考方式太远我猜:( – cabaret 2011-05-11 13:23:04

2

对于阅读COUNT(*)的索引使用以下方法来创建一个可读的领域:

select count(*) as cnt from tblusers where role = 1 

现在你将有:

Array ([0] => Array ([cnt] => 2)) 
+0

非常感谢,这固定它! – cabaret 2011-05-11 13:23:11

相关问题