要做的效果是如果当前页数小于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; }
友情提示:垃圾评论一律封号...