发新话题
打印

发布一个分页类

发布一个分页类

发布一个分页类

大家自己看
复制内容到剪贴板
代码:
<?php
/*
*
*              主要用于处理翻页
*
*
*/
        class Page{

                var $CountAll;                                                                        //共有纪录数
                var        $CountPage;                                                                        //每页显示记录数
                var $Link;                                                                                //显示 完整的分页信息
                var $ForPage;                                                                        //上一页
                var $NextPage;                                                                        //下一页
                var $FirstPage;                                                                        //第一页
                var $LastPage;                                                                        //最后一页
                var $CurrPage;                                                                        //第几页
                var $PageNum;                                                                        //共有多少页
                var $Parameter;                                                                        //参数
                var $LimitNum;                                                                        //不是统计全部记录,而是显示部分记录,例如共有100条记录,但是只统计显示前50条

                function Page($sql, $num=30){

                        //初始化,统计记录数        
                        $this->CountPage = $num;
                        global $mysql;
                        $sql = base64_decode($sql);
                        $result = $mysql->Query($sql);
                        if (0 != $mysql->AffectedRows()){
                                $row = $mysql->FetchArray($result);
                                $this->CountAll = $row[0];
                        }
                        else{
                                $this->CountAll = 0;
                        }
                        //print "共有 $this->CountAll <br>";
                }
               
                function ListPage($sql, $page=0,$sql_all,$other){
                        //查询,定义变量,获取数据
                        
                        global $mysql;
                        //print "sql sql<br>";
                        if (isset($this->LimitNum) && $this->CountAll > $this->LimitNum){
                                $this->CountAll = $this->LimitNum;
                        }//更新总浏览记录数

                        $sql_src = $sql;
                        //if ($page > 0){
                                $sql = base64_decode($sql);
                                $sql_all = base64_decode($sql_all);
                                $sql_src = $sql;
                        //}
                        //echo $sql;
                        if (($this->CountAll % $this->CountPage) == 0)//统计共有多少页
                                $pagecount = (integer)($this->CountAll/$this->CountPage);
                        else
                                $pagecount = (integer)($this->CountAll/$this->CountPage)+1;
                        $this->ageNum = $pagecount;
                        if ($page > $this->ageNum)//如果页码超过页码总数则设为最大页码
                                $page = $this->ageNum;
                        if ($page <= 0)//如果页码小于等于零则将页码设置为1
                                $page = 1;
                        
                        if ($this->CountAll == 0)
                        {
                                $this->CurrPage = 0;
                        }else{
                                $this->CurrPage = $page;
                        }
                        $first_start = ($page-1)*$this->CountPage;
                        $sql = $sql." limit ".$first_start.", ".$this->CountPage;
                        //print "2sql<br>";
                        $result = $mysql->Query($sql);
                        if (0 != $mysql->AffectedRows()){
                                $i = 0;
                                while($row = $mysql->FetchArray($result)){
                                        $array[$i] = $row;
                                        //print "name:".$array[$i][Name]."<br>";
                                        $i++;
                                }
                        }
                        

                        
                        $sql = base64_encode($sql_src);
                        $sql_all = base64_encode($sql_all);
                        if ($pagecount >1){
                                if($page == 1){
                                        $nextpage = $page+1;
                                        $forpage = 1;
                                        $this->Link =  "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/next.gif\" align=\"absmiddle\"> </button><button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_end.gif\" align=\"absmiddle\"> </button>";
                                        $this->NextPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/next.gif\" align=\"absmiddle\"> </button>";
                                        $this->LastPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_end.gif\" align=\"absmiddle\"> </button>";
                                }
                                else if(($page > 1)&&($page < $pagecount)) {
                                        $forpage = $page-1;
                                        $nextpage = $page+1;
                                        $this->Link = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_top.gif\" align=\"absmiddle\"> </button><button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev.gif\" align=\"absmiddle\"> </button><button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/next.gif\" align=\"absmiddle\"> </button><button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_end.gif\" align=\"absmiddle\"> </button>";
                                        $this->ForPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev.gif\" align=\"absmiddle\"> </button>";
                                        $this->NextPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/next.gif\" align=\"absmiddle\"> </button>";
                                        $this->FirstPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_top.gif\" align=\"absmiddle\"> </button>";
                                        $this->LastPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_end.gif\" align=\"absmiddle\"> </button>";
                                }
                                else if ($page = $pagecount){
                                        $forpage = $page-1;
                                        $nextpage = 1;
                                        $this->Link = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_top.gif\" align=\"absmiddle\"> </button><button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev.gif\" align=\"absmiddle\"> </button>";
                                        $this->FirstPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev_top.gif\" align=\"absmiddle\"> </button>";
                                        $this->ForPage = "<button onClick=\"javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'\" class=\"button_a\" style=\"width:30;height:22\";><img src=\"images/prev.gif\" align=\"absmiddle\"> </button>";
                                }
                        }
                        else{
                                $this->Link = '  ';
                        }
                        
                        return $array;//$array;
               
                }

        }
/***************
使用例子

        include("class.config.php");
        include("class.mysql.php");
        include("class.page.php");
        global $mysql;
        $config = new Config;
        $mysql = new TDatabase($config);

        $query_all = "select count(*) from user";
        $page_object = new Page($query_all,20);
        //new Page('统计记录个数语句',每页记录个数)
        if(empty($query_page))
                $query_sql = "select * from user";
                //注意这里的变量名必须为 $query_sql $query_page ,因为下一页的连接参数默认为 query_sql query_page

        $list = $page_object->ListPage($query_sql,$query_page);
        //ListPage('没有limit的前一部分,系统自动根据补齐',察看的页数)
        $page_object->Parameter = '&action=view';
        //这是传送的Url 所带的其它参数,如果有就修改变量 Parameter ,系统自动将她补在后面
        //显示数据
        for ($i=0;$i< $page_object->CountPage;$i++)
                print $list[$i][ID]."->".$list[$i][UserName]."<br>";
        //返回的数据为二维哈西(关联)数组,一维为纪录的标识ID号,二维为哈西(关联)数组,取值标识建议采取用数据库中字段名的方法,例如list[0][UserName]。

        //显示其他相关数据
        echo $page_object->CountAll;//纪录总数
        echo $page_object->CountPage;//每页显示数据个数
        echo $page_object->Link;//显示完整的分页信息
        echo $page_object->FirstPage;//第一页
        echo $page_object->NextPage;//下一页
        echo $page_object->ForPage;//上一页
        echo $page_object->LastPage;//最后一页
        echo $page_object->CurrPage;//第几页
        echo $page_object->PageNum;//共有多少页
        $mysql->DatabaseClose();        



****************/

?>
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

对于类不是很明白......
学习中..............
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

类是最简单的了
高手们把东西都封装好了
你只要对使用类的方法就可以了
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

好啊  怎麼能向你那樣  
把代碼放到白色顯示區

TOP

发表主题的时候有一个 代码的呀  你找一下
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

我知道  引用 就行.  但不会自己写类~~~~~~~~~~~~~
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

这个类,我测试过,不行的说。和他结合使用的两个类中的mysql类也不实用。

TOP

测试过不行?
那我再找找哦
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

代码不分色彩的好难看

TOP

这个是可以调通的,可以借鉴一下!
还想请教,针对返回值是二维数组形式的要怎么做这样效果的分页功能?
代码是什么样的?多谢指教!
附件: 您所在的用户组无法下载或查看附件

TOP

发新话题