用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4020|回复: 5
收起左侧

[已解决] num_rows() 与直接执行sql语句返回结果不一致。

[复制链接]
发表于 2012-5-3 10:47:30 | 显示全部楼层 |阅读模式
本帖最后由 80后奔三ing 于 2012-5-3 11:34 编辑

同一条SQL语句,通过
$query_count = $this->db->query($sql_count)->num_rows();
得到的结果是  1

而直接在数据库里执行SQL语句得到的结果是2。

这是什么原因呀?

model里的代码如下:

$sql_count = "select count(*) from `employee` where `delete` = 0";
$sql = "select `id`,`department_id`,`employee_class_id`,`name`,`turename`,`phone`,`register` from `employee` where `id` <= (select `id` from `employee` order by `id` desc limit ".ceil($data['segment']) * $data['per_page'].") and `delete` = 0";
$query_count = $this->db->query($sql_count)->num_rows();
$query = $this->db->query($sql);
return  $query->result_array();


我是想要做一个分页。。
发表于 2012-5-3 10:58:01 | 显示全部楼层
$sql_count = "select count(*) as count from `employee` where `delete` = 0";
                $row = $this->db->query($sql_count)->get()->row_array();
                $query_count = $row['count'];
 楼主| 发表于 2012-5-3 11:30:59 | 显示全部楼层
试了下,LS上方法,报错。。
get()
方法不存在。。。
 楼主| 发表于 2012-5-3 11:33:52 | 显示全部楼层
我知道问题所在了。。。
num_rows()  是返回结果的行数。。。

$sql_count = "select count(*) as count from `employee` where `delete` = 0";

这个执行后的结果肯定是只返回一行。。。

谢谢  太尉天上飞
发表于 2012-5-3 11:50:29 | 显示全部楼层
count(*) 返回的记录条数是1,他本身的值是2,楼主如果想用num_rows就把count去掉吧
 楼主| 发表于 2012-5-3 14:58:39 | 显示全部楼层
kissgxd 发表于 2012-5-3 11:50
count(*) 返回的记录条数是1,他本身的值是2,楼主如果想用num_rows就把count去掉吧 ...

嗯,谢谢啊!!

本版积分规则