zoukankan      html  css  js  c++  java
  • php分页类不错,很好用!

    平时开发中用到的一个php分页类,分享下,做个备忘吧。
    <?php
    /**
    对查询进行分页的类
    @link http://www.jbxue.com
    */
    class paging
    {
        private $pageSize;    //没一页显示的条数 默认是10条。
        private $totlePage;    //总共有多少条记录
        private $dbConnection;//数据库连接
        private $nowPageIndex;//当前显示的页数
        private $show;    //使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
        /**
        构造函数,建立数据库的连接
        @$pageSizeP 没一页显示的条数默认是10条。
        @$show      使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
        
    */
        public function _construct($pageSizeP=10,$show="show1")
        {
            $this->dbConnection = @mysql_connect("localhost","username","password");
            if($this->dbConnection)
            {
            die("");
            }
            mysql_select_db($this->dbConnection,"databaseName");
            $this->show = $show;
            $this->pageSize = $pageSizeP;
        }
        /**
        析构函数,关闭数据库的连接。
        
    */
        public function _destruct()
        {
            @mysql_close($this->dbConnection);
        }
        /**
        查询数据库,显示数据库的记录条数。
        @$sql        查询数据库的sql语句。
        @$charset    查询数据库使用的字符集,默认的是UTF-8。
        @return    返回数据库查询的结果,保存成数组,然后返回,条数不确定。
        
    */
        public function querySQL($sql,$charset="UTF-8")
        {
            mysql_query("SET NAMES ".$charset);
            $rs = @mysql_query($sql);
            if(!$rs)
            {
                die("");
            }
            $num = @mysql_num_rows($rs);
            $this->totlePage= ceil($num/$this->pageSize);
            $this->nowPageIndex = (isset($_POST['page']) || $_POST['page'] >= 1):$_POST['page']?1;
            if($this->nowPageIndex >$this->totlePage)
            {
                $this->nowPageIndex = $this->totlePage;
            }
            $start = ($this->nowPageIndex - 1)*$this->pageSize;
            mysql_free_result($rs);
            $sql .= "LIMIT $start,$this->pageSize";
            $rs = @mysql_query($sql);
            if(!$rs)
            {
                die("");
            }
            $rows = array();
            while($row = @mysql_fetch_row($rs))
            {
                $rows[] = $row;
            }
            @mysql_free_result($rs);
            return $rows;
        }
        /**
        显示导航兰。
        @$arg 调用显示导航的函数的参数。
            $img1 一个数组,保存导航的连接的图片。在调用show1()使用的。
            $size 导航兰的一行显示的页数。在调用show2()使用的。
        
    */
        public function show($arg)
        {
            $func = $this->show;
            $this->$func($arg);
        }
        /**
        以首页|上一页|下一页|末页的方式显示导航。
        @$img1 首页|上一页|下一页|末页对应的图片路径数组,默认是NULL,既不显示 图片。
        
    */
        private function show1($img1 = NULL)
        {  
            $url =  $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
            $str = "<table>
                <tr><td>当前$this->nowPageIndex页/共$this->totlePage页</td><td><a herf='";
            $str .= ereg_replace("page=/.&","page=1&",$url);
            $str .= "'>";
            if(isset($img) || $img != NULL)
            {
                $str .= "<img src=$img[0] alt=首页></a></td><td><a href=";
                $page1 = $this->nowPageIndex - 1;
                $str .= ereg_replace("page=/.&","page=$page1&",$url);
                $str .= "><img src=$img[1] alt=上一页></a></td><td><a href=";
                $page1 = $this->nowPageIndex + 1;
                $str .= ereg_replace("page=/.&","page=$page1&",$url);
                $str .= "><img src=$img[2] alt=下一页></a></td><td><a href=";
                $page1 = $this->totlePage ;
                $str .= ereg_replace("page=/.&","page=$page1&",$url);
                $str .= "><img src=$img[3] alt=末页></a></td><td></tr><table>";
            }
            else
            {
                $str .= "首页></a></td><td><a href=";
                $page1 = $this->nowPageIndex - 1;
                $str .= ereg_replace("page=/.&","page=$page1&",$url);
                $str .= ">上一页</a></td><td><a href=";
                $page1 = $this->nowPageIndex + 1;
                $str .= ereg_replace("page=/.&","page=$page1&",$url);
                $str .= ">下一页</a></td><td><a href=";
                $page1 = $this->totlePage ;
                $str .= ereg_replace("page=/.&","page=$page1&",$url);
                $str .= ">末页</a></td><td></tr><table>";
            }
            echo $str;
        }
        /**
        以1|2|3|。。。的方式显示导航。
        @$size 导航兰每一行显示的页数,默认是10。
        
    */
        private function show2($size =10)
        {
            $url =  $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
            $str = "<table><tr>";
            for($index = 1 ; $index <= $this->totlePage ; $index++)
            {          
                $str .= "<td><a herf=";
                $str .= ereg_replace("page=/.&","page=$index&",$url);
                $str .= "$index</a></td>";
                if($index == $size)
                {
                    $str .="</tr><tr>";
                }
            }
            $str .= "</tr></table>";
            echo $str;
        }
    }
    ?>
  • 相关阅读:
    linux杂记
    mysql 备份命令
    查看mysql 套接字文件 mysql.sock
    处理下载是文件名乱码正确姿势
    对象创建完成后进行数据同步
    python——数据库编程
    python——网络编程2
    python——网络编程
    python——12、面向对象
    pythoning——11、正则匹配
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3081106.html
Copyright © 2011-2022 走看看