php分页类用法(摘自yii框架)

发布时间:2019-11-24编辑:脚本学堂
一个yii框架中使用的php分页类代码,另外提供了自己实现的分页类代码,可以将二者进行比较,了解下php分页原理与实现方法,需要的朋友参考下。

yii框架内部的分页方法和自己引入一个分页类实现分页显示。

1,使用Yii自带的分页功能
控制器代码:
 

复制代码 代码示例:
php;toolbar:false">/*public function actionReport()
{
$sql = "select * from {{goods}}";
$criteria=new CDbCriteria();
$result = Yii::app()->db->createCommand($sql)->query();
$pages=new CPagination($result->rowCount);
$pages->pageSize=2;
$pages->applyLimit($criteria);
$result=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$result->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$result->bindValue(':limit', $pages->pageSize);
$goodsInfo=$result->query();
$this->render('index',array(
'goodsInfo'=>$goodsInfo,
'pages'=>$pages,
));
}*/

视图代码:
 

复制代码 代码示例:
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>商品name</td>
<td>价格</td>
<td>更新时间</td>
</tr>
<?php
foreach($goodsInfo as $v){
?>
<tr>
<td><?php echo $v['name']; ?></td>
<td><?php echo $v['market_price']; ?></td>
<td><?php echo $v['create_time']; ?></td>
</tr>
<?php
}
?>
<?php
//分页widget代码:
 $this->widget('CLinkPager',array('pages'=>$pages));
?>
</table>

方式二,使用自己的分页类来完成分页
1,控制器代码:
 

复制代码 代码示例:

public function actionIndex(){
$goods_m=goods::model();

//1.获得商品总的记录数目
$cnt = $goods_m -> count();

//2. 实例化分页类对象
$page = new Page($cnt, 2);

//3. 重新按照分页的样式拼装sql语句进行查询
$sql = "select * from {{goods}} $page->limit";
$goodsInfo = $goods_m -> findAllBySql($sql);

//4. 获得分页页面列表(需要传递到视图模板里边显示)
$pageList = $page->fpage();

$this->renderPartial('index',array('goodsInfo'=>$goodsInfo,'pageList'=>$pageList));
}

2,视图代码:
 

复制代码 代码示例:
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>商品name</td>
<td>price</td>
<td>create_time</td>
</tr>
<?php
foreach($goodsInfo as $v){
?>
<tr>
<td><?php echo $v['name']; ?></td>
<td><?php echo $v['market_price']; ?></td>
<td><?php echo $v['create_time']; ?></td>
</tr>
<?php
}
?>
<?php
echo $pageList;
?>
</table>
 

分页类要放到能自动加载到的目录下就行;