4

我正在关注关于使用 CI/jQuery 进行分页的教程。在本教程中,他们通过执行以下操作获得总行数:

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

他们获取用户总数来定义分页。但是,他们获得了所有用户。在我的应用程序中,我只需要分配给他们特定值的用户,在本例中为“角色”。

我只需要role = 1我的数据库中的用户。

我已经尝试了几件事->count()(来自 CI 的 Active Record 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

提前致谢。任何帮助表示赞赏。

4

3 回答 3

5

count(*)您可以简单地为结果列设置别名:

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

您现在可以使用number_of_entries结果数组中的键来访问所需的值。

于 2011-05-11T13:14:53.953 回答
2

不是肯定的,但您似乎只需要为该列命名。例如,

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

我怀疑这会奏效。

于 2011-05-11T13:15:35.253 回答
2

要读取 count(*) 索引,请使用以下命令创建可读字段:

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

现在您将拥有:

Array ( [0] => Array ( [cnt] => 2 ) )
于 2011-05-11T13:16:21.787 回答