我正在关注CI / jQuery的分页教程。在本教程中,他们通过执行以下操作获得总行数:
$config['total_rows'] = $this->db->count_all('tblUsers');
他们获得定义分页的用户总数。但是,他们得到了所有用户。在我的应用程序中,我只需要为其分配了特定值的用户,在本例中为“role”。
我只需要数据库中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
提前致谢。任何帮助表示赞赏。
答案 0 :(得分:5)
您可以简单地为count(*)
结果列添加别名:
select count(*) as number_of_entries from tblusers where role = '1'
现在,您可以使用number_of_entries
作为结果数组中的键来访问所需的值。
答案 1 :(得分:2)
不是正面的,但似乎所有你需要的是给该列命名。例如,
... = $this->db->query("select count(*) as colname from tblusers where role = '1'")->result_array();
我怀疑这会奏效。
答案 2 :(得分:2)
要读取count(*)索引,请使用以下命令创建可读字段:
select count(*) as cnt from tblusers where role = 1
现在你将拥有:
Array ( [0] => Array ( [cnt] => 2 ) )