4-22 3,428 views
要做的效果是如果当前页数小于7
要做的效果是如果当前页数大于7,
要做的效果是如果当前页数大于7,那么显示前3和后3条
1.mysql 代码 "SELECT * FROM table LIMIT 从第几个开始,取多少条";
2.假设每页取的条数是limit,数据总数为$nums,当前第几页是$sum(通过get获得);
所以要分的总页数可以算出来,有两种情况,一种是$nums%$limt 可以整除的,那么页数就是这个,另外一种情况就是假如不能整除,那么页数就要+1。采用php的向后取整函数ceil实现
所以要分的总页数可以算出来,有两种情况,一种是$nums%$limt 可以整除的,那么页数就是这个,另外一种情况就是假如不能整除,那么页数就要+1。采用php的向后取整函数ceil实现
3.页数已经有了,当总数小于7的时候for循环从1开始$pages结束
4.当总数大于7且当前页+3小于7的时候for循环从1开始到7结束
5.当总数大于7且当前页+3大于7并且当前页+3小于总页数的时候for循环从$sum-3开始到$sum+3结束
6.当总数大于7当前页+3大于总页数的时候for循环从$sum-3开始到$pages结束
下面是代码————>
model类
// 直播订单列表
public function order_living(){
$model = new OrderModel();
//接取页数
$index = Req::args("page") ? Req::args("page") : '1';
//获取订单数量
$nums = $model->get_counts();
$limit = 9;//每页显示几条
//调取分页函数
$pageStr = $this->living_page($nums,$limit,$index);
//调数据库 取数据
$data = $model->get_all_data($index,$limit);
$this->assign('page',$pageStr);
$this->assign('data',$data);
$this->redirect();
}
分页函数
//分页函数
//$nums,数据总数,$page,每页要分多少条,$sum 当前第几页
private function living_page($nums,$page,$sum){
//获得页数,总数据小于每页的条数,默认第一页,否则计算页数
if($nums < $page){
$pages = 1;
}
else{
if ($nums%$page>0){
$pages = ceil($nums/$page);
}
else {
$pages = $nums/$page;
}
}
$str="";
//页数小于7 就只显示小于7的
if($pages < 7)
{
for ($i=1; $i <= $pages; $i++) {
if ($i==$sum){
$str .="<span class='current'>$sum</span>";
} else{
$str .= "<a href='/shop/order/order_living?page=$i'>$i</a>";
}
}
}else{
//如果大于7,就加上首页and 末页
$str = "<a href='/shop/order/order_living?page=1'>首页</a>";
//如果当前页小于4的时候
if($sum<=4){
//当前页大于1才显示上一页
if($sum>1){
$str .= "<a href='/shop/order/order_living?page=".($sum-1)."'>上一页</a>";
}
for($i=1;$i<=7;$i++){
if ($i==$sum){
$str .="<span class='current'>$sum</span>";
} else{
$str .= "<a href='/shop/order/order_living?page=$i'>$i</a>";
}
}
$str .= "<a href='/shop/order/order_living?page=".($sum+1)."'>下一页</a>";
}else if($sum+3<$pages){
$str .= "<a href='/shop/order/order_living?page=".($sum-1)."'>上一页</a>";
for($i=$sum-3;$i<=$sum+3;$i++){
if ($i==$sum){
$str .="<span class='current'>$sum</span>";
} else{
$str .= "<a href='/shop/order/order_living?page=$i'>$i</a>";
}
}
$str .= "<a href='/shop/order/order_living?page=".($sum+1)."'>下一页</a>";
}else{
$str .= "<a href='/shop/order/order_living?page=".($sum-1)."'>上一页</a>";
for($i=$pages-6;$i<=$pages;$i++){
if ($i==$sum){
$str .="<span class='current'>$sum</span>";
} else{
$str .= "<a href='/shop/order/order_living?page=$i'>$i</a>";
}
}
$str .= "<a href='/shop/order/order_living?page=".($sum+1)."'>下一页</a>";
}
$str .= "<a href='/shop/order/order_living?page=".$pages."'>末页</a>";
}
$str .=" 共$pages 页 ";
$str .=" 跳到第 <input type='text' style='width:24px;text-align:center' value='$sum'>页 <a id='go' href='javascript:void(0)'>确定</a> ";
return $str;
}