Yii Framework使用DAO方式查询分页代码 [ 技术分享 ]
由于这次项目用到两表合并查询,所以AR查询不太适合了,所以这次想采用DAO方式查询,但分页代码从官网找了几天都没搞到,所以自己写了个DAO分页的例子,给大家分享一下!
控制器代码如下:
$sql = "SELECT * FROM table WHERE cid=2 and status=1";
$criteria=new CDbCriteria();
$result = Yii::app()->db->createCommand($sql)->query();
$pages=new CPagination($result->rowCount);
$pages->pageSize=22;
$pages->applyLimit($criteria);
$result=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$result->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$result->bindValue(':limit', $pages->pageSize);
$posts=$result->query();
$this->render('index',array(
'posts'=>$posts,
'pages'=>$pages,
));
视图代码如下: 循环输出
<?php
foreach($posts as $model):
?>
<?php
echo CHtml::link($model['title'],array('article/view','id'=>$model['id']));
?>
<?php
endforeach;
?>
分页widget代码:
<?php
$this->widget('CLinkPager',array('pages'=>$pages));
?>
共 15 条回复
-
lz19881123 回复于 2011-07-31 23:16 举报
不错啊,学习
-
278893912qq 回复于 2011-09-19 14:01 举报
偶也来沙发...
-
1648053976 回复于 2011-10-19 23:41 举报
留一脚印
-
huangjiyun 回复于 2012-03-09 16:50 举报
如何提高这个的分页效率呢?和大家一起探讨下,如果我们获取总计记录数的语句和获取详情的语句分开,将获取总记录数的语句简化,是否就可以提供效率呢?毕竟这样执行了两次SQL
╃巡洋艦㊣ 北京
注册时间:2010-11-21
最后登录:1小时前
在线时长:1681小时55分
最后登录:1小时前
在线时长:1681小时55分
- 粉丝1369
- 金钱77013
- 威望845
- 积分102273