用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
eoe2005的公告
我的心情很不好,不是因为工作让我郁闷,而是因为我又很好的精神,不少的收入,沉稳的性格,温和的秉性,但是到现在依然孤苦一人,现在感情问题成了我最头痛的,难道程序员真的是爱情白吃把,我不想我我是那样的人,我只想好好的工作,好好的爱一个人,但是世界让我很悲伤,我不能控制世界的发展,我也不能左右别人的思想去爱我,我真可以慢慢的在黑夜里辗转无数次后进入梦境,或者是在磅礴的雨天感觉水的凉爽与透明,为此我努力的坚持住,我要让世界知道,我的爱也许就是世界上最真的,没有电影当中的浪漫,没有有钱人的那种XX,我只是会很认真地去爱,这就是我的爱情宣言。 来吧!你要想和我交朋友. 请email:<a href="mailto:eoe0371@163.com">eoe0371@163.com</a>
文章分类
java学习
java1.5中文帮助文档
java世界中文论坛
java开源大全
php学习
mysql5.0下载
php中国联盟
电脑学习
ibm学习
W3C标准中文
老二
我的sohu的blog
老二的blog
商业
暗恋的女人(RSS)
存档

原创  php分页 收藏

/**
@作者:耿鸿飞
@日期:2007-4-16
@作用:对查询进行分页。
*/
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;
    }
}

发表于 @ 2007年04月18日 21:01:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:php的开发模式—基础篇 | 新一篇:php设计模式-中级

  • 发表评论
  • 评论内容:
  •  
Copyright © eoe2005
Powered by CSDN Blog