分页效果

分页类

<?php

//封装这个类,在调用这个类的方法,让他给我们返回一个字符串,也就是html代码
/**
 *@param string $total_rows 所有的记录数
 *@param string $total_page 所有的页数
 *@param  int  $page    当前的页码数
 *@param int   $pagesize  每页需要显示几条记录
 *@param string  $url            分页后要跳转的地址
 *@param $return    html 代码,包含了分页的哪些字符串
 */

class page{
        public static function show($total_rows,$page,$pagesize,$url){

            //之前我们使用new class(),今天我们换一种方法,通过类调用它的方法
            //先声明一个空字符串,然后再通过一步一步的连接,最终返回div中的字符串

                $return = '';
            //求出总的页数
                $total_page = ceil($total_rows/$pagesize);
                $request_url = $url.'?page=';
                $return .= "总共  $total_rows 个记录 分为 $total_page 页 当前第 $page 页 每页显示 $pagesize";
            
             //格式化字符串
                $first = sprintf('<a href="%s">%s</a>',$request_url.'1','第一页');

             //一次求出上一页,下一页,尾页的字符串
                if($page>1){
               $prev=sprintf('<a href="%s">%s</a>',$request_url.($page-1),'上一页');
                }else{
                    $prev = '';
                }

            if($total_page == $page){
                    $next = '';
            }else{
                  //href="brand.php?page=2"
            $next = sprintf('<a href="%s">%s</a>',$request_url.($page+1),'下一页');
            }

            $last = sprintf('<a href="%s">%s</a>',$request_url.$total_page,'尾页');


               /****************************8******拉列表的代码**********************************************/


           //声明一个保存下拉列表的字符串,给这个下拉列表一个监听他发生变化的事件
            $select_page = '<select οnchange="goPage(this)">';
    
            //循环的输出select列表中的option选项
            for($i=1;$i<=$total_page;$i++){
                if($i == $page){
            $select_page .= sprintf('<option value="%s" selected>%s</option>',$i,$i);
                }else{
                $select_page .= sprintf('<option value="%s">%s</option>',$i,$i);
                }
            }
            $select_page.='</select>';
           //一定要注意,定界符的结束时一定要顶格写,分号结束
            $select_script= <<<SCR
                <script type="text/javascript">
                    function goPage(obj){
                        window.location.href="$request_url"+obj.value;
            }
                </script>
SCR;

 

 /******************************结束******************************/

            $return .= $first.$prev.$next.$last.$select_page.$select_script;
            return $return;

        }

}













/********************************php代码********************************/

             //我们通过?page=来判断当前是第几页比如?page=2代表第二页
                $page = isset($_GET['page'])?$_GET['page']:1;
                $pagesize=5;//这是已知的条件
                $offset=$pagesize*($page-1);//掠过的记录数
                $sql = "select * from brand limit $offset,$pagesize";
                $result = mysql_query($sql);
                $return = array();
                while($row = mysql_fetch_assoc($result)){
                      $return[] = $row;
                       
                     }

            // 获取符合条件的所有记录
                 $sql = "select count(*) as total from brand";
                 $res = mysql_query($sql);
                 $rows = mysql_fetch_assoc($res);
                 $total_rows=$rows['total'];
                 $url = 'brand.php';
                  //var_dump($rows);            
                 include 'includes/page.class.php';//加载类文件
                 $html=page::show($total_rows,$page,$pagesize,$url);//调用类
                



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值