一个好用的php分页类
时间:2021-07-01 10:21:17
帮助过:5人阅读
- /**
- 对查询进行分页的类
- @link http://bbs.it-home.org
- */
- 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 = "
-
当前$this->nowPageIndex页/共$this->totlePage页 | $str .= ereg_replace("page=/.&","page=1&",$url);- $str .= "'>";
- if(isset($img) || $img != NULL)
- {
- $str .= "
| $page1 = $this->nowPageIndex - 1;- $str .= ereg_replace("page=/.&","page=$page1&",$url);
- $str .= ">
| $page1 = $this->nowPageIndex + 1;- $str .= ereg_replace("page=/.&","page=$page1&",$url);
- $str .= ">
| $page1 = $this->totlePage ;- $str .= ereg_replace("page=/.&","page=$page1&",$url);
- $str .= ">
| | ";- }
- else
- {
- $str .= "首页>
$page1 = $this->nowPageIndex - 1;- $str .= ereg_replace("page=/.&","page=$page1&",$url);
- $str .= ">上一页
| $page1 = $this->nowPageIndex + 1;- $str .= ereg_replace("page=/.&","page=$page1&",$url);
- $str .= ">下一页
| $page1 = $this->totlePage ;- $str .= ereg_replace("page=/.&","page=$page1&",$url);
- $str .= ">末页
| ";- }
- echo $str;
- }
- /**
- 以1|2|3|。。。的方式显示导航。
- @$size 导航兰每一行显示的页数,默认是10。
- */
- private function show2($size =10)
- {
- $url = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
- $str = "
";- for($index = 1 ; $index <= $this->totlePage ; $index++)
- {
- $str .= "
$str .= ereg_replace("page=/.&","page=$index&",$url);- $str .= "$index
| "; - if($index == $size)
- {
- $str .="
";- }
- }
- $str .= "
"; - echo $str;
- }
- }
- ?>
人气教程排行
|
|