dbConnection) { die("")">
当前位置:Gxlcms > PHP教程 > 一个好用的php分页类

一个好用的php分页类

时间:2021-07-01 10:21:17 帮助过:5人阅读

  1. /**
  2. 对查询进行分页的类
  3. @link http://bbs.it-home.org
  4. */
  5. class paging
  6. {
  7. private $pageSize; //没一页显示的条数 默认是10条。
  8. private $totlePage; //总共有多少条记录
  9. private $dbConnection;//数据库连接
  10. private $nowPageIndex;//当前显示的页数
  11. private $show; //使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
  12. /**
  13. 构造函数,建立数据库的连接
  14. @$pageSizeP 没一页显示的条数默认是10条。
  15. @$show 使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
  16. */
  17. public function _construct($pageSizeP=10,$show="show1")
  18. {
  19. $this->dbConnection = @mysql_connect("localhost","username","password");
  20. if($this->dbConnection)
  21. {
  22. die("");
  23. }
  24. mysql_select_db($this->dbConnection,"databaseName");
  25. $this->show = $show;
  26. $this->pageSize = $pageSizeP;
  27. }
  28. /**
  29. 析构函数,关闭数据库的连接。
  30. */
  31. public function _destruct()
  32. {
  33. @mysql_close($this->dbConnection);
  34. }
  35. /**
  36. 查询数据库,显示数据库的记录条数。
  37. @$sql 查询数据库的sql语句。
  38. @$charset 查询数据库使用的字符集,默认的是UTF-8。
  39. @return 返回数据库查询的结果,保存成数组,然后返回,条数不确定。
  40. */
  41. public function querySQL($sql,$charset="UTF-8")
  42. {
  43. mysql_query("SET NAMES ".$charset);
  44. $rs = @mysql_query($sql);
  45. if(!$rs)
  46. {
  47. die("");
  48. }
  49. $num = @mysql_num_rows($rs);
  50. $this->totlePage= ceil($num/$this->pageSize);
  51. $this->nowPageIndex = (isset($_POST['page']) || $_POST['page'] >= 1):$_POST['page']?1;
  52. if($this->nowPageIndex >$this->totlePage)
  53. {
  54. $this->nowPageIndex = $this->totlePage;
  55. }
  56. $start = ($this->nowPageIndex - 1)*$this->pageSize;
  57. mysql_free_result($rs);
  58. $sql .= "LIMIT $start,$this->pageSize";
  59. $rs = @mysql_query($sql);
  60. if(!$rs)
  61. {
  62. die("");
  63. }
  64. $rows = array();
  65. while($row = @mysql_fetch_row($rs))
  66. {
  67. $rows[] = $row;
  68. }
  69. @mysql_free_result($rs);
  70. return $rows;
  71. }
  72. /**
  73. 显示导航兰。
  74. @$arg 调用显示导航的函数的参数。
  75. $img1 一个数组,保存导航的连接的图片。在调用show1()使用的。
  76. $size 导航兰的一行显示的页数。在调用show2()使用的。
  77. */
  78. public function show($arg)
  79. {
  80. $func = $this->show;
  81. $this->$func($arg);
  82. }
  83. /**
  84. 以首页|上一页|下一页|末页的方式显示导航。
  85. @$img1 首页|上一页|下一页|末页对应的图片路径数组,默认是NULL,既不显示 图片。
  86. */
  87. private function show1($img1 = NULL)
  88. {
  89. $url = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
  90. $str = "
  91. 当前$this->nowPageIndex页/共$this->totlePage页 $str .= ereg_replace("page=/.&","page=1&",$url);
  92. $str .= "'>";
  93. if(isset($img) || $img != NULL)
  94. {
  95. $str .= "首页
  96. $page1 = $this->nowPageIndex - 1;
  97. $str .= ereg_replace("page=/.&","page=$page1&",$url);
  98. $str .= ">上一页
  99. $page1 = $this->nowPageIndex + 1;
  100. $str .= ereg_replace("page=/.&","page=$page1&",$url);
  101. $str .= ">下一页
  102. $page1 = $this->totlePage ;
  103. $str .= ereg_replace("page=/.&","page=$page1&",$url);
  104. $str .= ">末页
  105. ";
  106. }
  107. else
  108. {
  109. $str .= "首页>
  110. $page1 = $this->nowPageIndex - 1;
  111. $str .= ereg_replace("page=/.&","page=$page1&",$url);
  112. $str .= ">上一页
  113. $page1 = $this->nowPageIndex + 1;
  114. $str .= ereg_replace("page=/.&","page=$page1&",$url);
  115. $str .= ">下一页
  116. $page1 = $this->totlePage ;
  117. $str .= ereg_replace("page=/.&","page=$page1&",$url);
  118. $str .= ">末页
  119. ";
  120. }
  121. echo $str;
  122. }
  123. /**
  124. 以1|2|3|。。。的方式显示导航。
  125. @$size 导航兰每一行显示的页数,默认是10。
  126. */
  127. private function show2($size =10)
  128. {
  129. $url = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
  130. $str = "
  131. ";
  132. for($index = 1 ; $index <= $this->totlePage ; $index++)
  133. {
  134. $str .= "
  135. ";
  136. if($index == $size)
  137. {
  138. $str .="
  139. ";
  140. }
  141. }
  142. $str .= "
  143. $str .= ereg_replace("page=/.&","page=$index&",$url);
  144. $str .= "$index
  145. ";
  146. echo $str;
  147. }
  148. }
  149. ?>

人气教程排行