Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP.NET > php分页
【标  题】:php分页
【关键字】:php
【来  源】:http://blog.csdn.net/eoe2005/archive/2007/04/18/1569674.aspx

php分页

Your Ad Here /**
@作者:耿鸿飞
@日期: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;
    }
}
Cannot forward after response has been committed:【上一篇】
如何编写PHP扩展:【下一篇】
【相关文章】
  • 也谈Apache、PHP和mySQL的配置
  • Oracle性能调优--系统篇(转:http://mlsx.xplore.cn/read.php?653)
  • PHP 调用 Oracle 存储过程 之 查询
  • Openads,phpadsnew广告统计系统,中文安装和使用说明,教程完整版
  • 编译chm格式PHP手册
  • php的开发模式—基础篇
  • potential Security of PHP COM function
  • 新人求助关于PHP的转换成ASP
  • PHP使用技巧
  • PHP数据库类
  • 【随机文章】
  • JavaScript 和 Macromedia Flash 之间的通信示例
  • 『21天精通C++』第三周学习笔记(3-2)
  • Linux 挂载文件系统
  • 在C++ Builder下实现程序自动运行的方法
  • shell 编程--ch03 后台执行命令
  • 如何更改自己个性化的JSP扩展名
  • Java Management extensions(JMX)
  • 音效的处理
  • Photoshop字体特效--日光灯字
  • js宝典学习笔记
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.