要做的效果是如果当前页数小于7

 
要做的效果是如果当前页数大于7,

 
要做的效果是如果当前页数大于7,那么显示前3和后3条


 
1.mysql 代码 “SELECT * FROM table LIMIT 从第几个开始,取多少条”;
2.假设每页取的条数是limit,数据总数为$nums,当前第几页是$sum(通过get获得);
所以要分的总页数可以算出来,有两种情况,一种是$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;
    }

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!