PHP分页的实现
页面代码:
<nav aria-label="Page navigation">
<ul class="pagination">
<!--start 上一页 -->
<!-- 当当前页面为1时 添加不能点击样式 -->
<li <?php if($page == 1 || !$page): ?> class="disabled" <?php endif; ?> >
<!-- 当当前页面为1时 a链接点击失效 -->
<!-- a链接地址为(当前页面-1)-->
<a <?php if($page == 1 || !$page): ?> οnclick="return false" <?php endif; ?> href="/user/index?page=<?= $page-1?>" aria-label="Previous">
<span aria-hidden="true" >«</span>
</a>
</li>
<!-- end 上一页 -->
<!--start 页码开始-->
<!-- 循环页数 -->
<?php for($i=0;$i<$pageCount;$i++): ?>
<!-- 如果是当前页码则添加选中的样式 -->
<!-- 点击页码链接,传递page参数为页码加一 -->
<li <?php if($page == $i+1): ?> class="active" <?php endif; ?>><a href="/user/index?page=<?= $i+1 ?>"><?=$i+1?></a></li>
<?php endfor; ?>
<!--end 页码结束-->
<!-- start 下一页开始 -->
<!--最后一页时 添加不能点击样式 -->
<li <?php if($page == $pageCount): ?> class="disabled" <?php endif; ?> >
<!--最后一页时 a链接不能点击 -->
<a <?php if($page == $pageCount): ?> οnclick="return false" <?php endif; ?> href="/user/index?page=<?= $page+1?>" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
<!-- end 下一页结束 -->
</ul>
</nav>
逻辑代码:
//控制器代码
public function index(){
//获取page的值,默认为1
$page = $_GET['page'] ? $_GET['page'] : 1;
//页面展示数据量
$limit = 2;
//获取总数据量
$count = $this->User->count();
//页面总页数
$pageCount = ceil($count/$limit);
//查询数据,传递当前页码和页面展示数据量
$params = $this->User->findUser($page,$limit);
$this->set(array('params'=>$params,'page'=>$page,'pageCount'=>$pageCount));
}
//模型代码
/*
* 查询user表总数
*/
public function count(){
$this->setSource('users');
$count = $this->find('count');
return $count;
}
// sql代码:sql = "select * from users limit ". (($page-1)*$limit) . " ," . $limit;
/*
* 分页查询
*/
public function findUser($page,$limit){
$this->setSource('users');
$data = $this->find('all',array(
'limit' => $limit,
'page' => $page,
));
return $data;
}
页面展示: