设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
谁遇见这种情况没?当count_all_results遇见group_by ...
返回列表
查看:
4428
|
回复:
2
[已解决]
谁遇见这种情况没?当count_all_results遇见group_by
[复制链接]
feiying0193
feiying0193
当前离线
积分
109
IP卡
狗仔卡
发表于 2011-3-16 21:36:05
|
显示全部楼层
|
阅读模式
本帖最后由 feiying0193 于 2011-3-16 21:49 编辑
当count_all_results遇见group_by
PHP代码:
PHP
复制代码
$this
->
db
->
group_by
(
'row'
)
;
$num_rows
=
$this
->
db
->
count_all_results
(
'table'
)
;
复制代码
执行的语句是:
SQL
复制代码
SELECT
COUNT
(
*
)
AS
`numrows`
FROM
(
`table`
)
GROUP
BY
`row`
复制代码
不管怎么弄,结果肯定和预计的不一样。
比如row的结果可能就是
1
1
2
3
1
5
1
而实际结果是:7
上面数字的行数。
用count_all_results的结果就是1,第一行的数据
有谁遇见这种情况?该怎么解决?
要是没有解决办法,那只有用
PHP
复制代码
$this
->
db
->
group_by
(
'row'
)
;
$query
=
$this
->
db
->
get
(
'table'
)
;
$query
->
num_rows
(
)
;
复制代码
来解决了。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
tiana
tiana
当前离线
积分
982
IP卡
狗仔卡
发表于 2011-3-16 22:23:36
|
显示全部楼层
组群,那就是取回结果集,而不是行吧。是不是用错方法了
PHP
复制代码
$result
=
$query
->
result
(
)
;
foreach
(
$result
as
$row
)
$row
->
numrows
;
复制代码
回复
支持
反对
使用道具
举报
显身卡
feiying0193
feiying0193
当前离线
积分
109
IP卡
狗仔卡
楼主
|
发表于 2011-5-1 10:15:42
|
显示全部楼层
count_all_results取得的结果是搜索数据库后的行数,得到的结果应该是一个数值。
而group_by()的结果是按字段合计行数,即得到各个相同字段的数量。
count_all_results和group_by()合起来用的话得到的结果就不是一个数值,而是一个array()了。
所以在CodeIgniter中count_all_results的Active Record限制函数中应该不能适应group_by()函数。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页