谁遇见这种情况没?当count_all_results遇见group_by
本帖最后由 feiying0193 于 2011-3-16 21:49 编辑当count_all_results遇见group_by
PHP代码:
$this->db->group_by('row');
$num_rows = $this->db->count_all_results('table');
执行的语句是:
SELECT COUNT(*) AS `numrows` FROM (`table`) GROUP BY `row`
不管怎么弄,结果肯定和预计的不一样。
比如row的结果可能就是
1
1
2
3
1
5
1
而实际结果是:7
上面数字的行数。
用count_all_results的结果就是1,第一行的数据
有谁遇见这种情况?该怎么解决?
要是没有解决办法,那只有用
$this->db->group_by('row');
$query=$this->db->get('table');
$query->num_rows();
来解决了。 组群,那就是取回结果集,而不是行吧。是不是用错方法了
$result = $query->result();
foreach( $result as $row)
$row->numrows;
count_all_results取得的结果是搜索数据库后的行数,得到的结果应该是一个数值。
而group_by()的结果是按字段合计行数,即得到各个相同字段的数量。
count_all_results和group_by()合起来用的话得到的结果就不是一个数值,而是一个array()了。
所以在CodeIgniter中count_all_results的Active Record限制函数中应该不能适应group_by()函数。
页:
[1]