php 远程分页类

page_total_rows - 每页展示数量 默认值20

$total_rows - 总计数据条目数

$totpages - 总页数计算

$pages_current - 当前页面

利用url参数传递 当前页码 url参数名称 pages

$style - 页码展示样式可以通过外部访问样式属性进行修改

***********************使用方法**********************

调用该类:$pages = new pages;

调用该类后请修改数据集总条数

$pages->total_rows = $totrows;

$pages->main();方法将返回limit需要的2个参数 关联数组的a,b2个元素

$limit = $pages->main();

通过访问不同方法即可展示不同的功能!

PHP远程分页类实例代码如下:
  1. <?php
  2. class pages{
  3. public $page_total_rows = 20;//每页展示数量
  4. public $total_rows;//总计数据条目数
  5. public $totpages;//总页数
  6. public $current_url;//当前页面名称
  7. private $ask; //是否出现问号
  8. public $style ='<style type="text/css教程">
  9. .pages_norename{width:50px; height:20px; float:left; background-color:#e3eff3; margin-right:5px; text-align:center; line-height:20px; border:1px solid #333333;}
  10. .pages_norename a{display:block; width:50px; height:20px; color:#333333; text-decoration:none;}
  11. .pages_norename a:hover{background-color:#ff9900; color:#ffffff;}
  12. .pages_nore_more{width:auto; height:20px; float:left; margin-right:5px; line-height:20px; background-color:#e3eff3; border:1px solid #333333;}
  13. .pages_nore_more a{display:block; width:20px; height:20px; color:#333333; text-decoration:none; text-align:center;}
  14. .pages_nore_more a:hover{background-color:#ff9900; color:#ffffff;}
  15. .pages_se{width:auto; height:20px; float:left;}
  16. .pages_se select{margin:0px; padding:0px; font-family:arial, helvetica, sans-serif; font-size:12px;}
  17. </style>
  18. ';
  19. //核心计算 并以数组的形式返回查询sql 语句的必须值 limit a,b;
  20. function main(){
  21. $this->totpages = ceil($this->total_rows/$this->page_total_rows);//总页数计算
  22. //获得当前页码-------------------
  23. if(!isset($_get['pages']))
  24. {
  25. $this->pages_current = 1;
  26. }else
  27. {
  28. $this->pages_current = intval($_get['pages']);
  29. //判断页面不为0
  30. if($this->pages_current < 1){
  31. $this->pages_current = 1;
  32. }//开源代码phpfensi.com
  33. //判断页面不能大于最大页码数量
  34. if($this->pages_current > $this->totpages){
  35. $this->pages_current = $this->totpages;
  36. }
  37. //注销url 参数 pages 和 total_rows 为了更好的传递其他url参数
  38. if(isset($_get['pages'])){unset($_get['pages']);}
  39. if(isset($_get['total_rows'])){unset($_get['total_rows']);}
  40. }
  41. //获得当前页码--------------------
  42. $limit['a'] = $start = ($this->pages_current - 1)*$this->page_total_rows;
  43. $limit['b'] = $this->page_total_rows;
  44. //获得当前页面名称
  45. $urlin = explode('/',$_server['php教程_self']);
  46. $tot_url = sizeof($urlin);
  47. $this->current_url =$urlin[$tot_url-1];
  48. //获得当前页面传递的url
  49. if(sizeof($_get) > 0){
  50. foreach($_get as $key=>$values){
  51. $urlsget .= $key.'='.$values.'&';
  52. }
  53. $this->current_url .= '?'.$urlsget;
  54. $this->ask = '';
  55. }else{$this->ask = '?';}
  56. //输出样式
  57. echo $this->style;
  58. return $limit;
  59. }
  60. //展示分页
  61. //1 第一页
  62. function firstpage(){
  63. echo '<div class="pages_norename"><a href="'.$this->current_url.'">首页</a></div>';
  64. }
  65. //2 上一页
  66. function prepage(){
  67. echo '<div class="pages_norename"><a href="'.$this->current_url.$this->ask.'pages='.($this->pages_current-1).'">上一页</a></div>';
  68. }
  69. //3 下一页
  70. function nextpage(){
  71. echo '<div class="pages_norename"><a href="'.$this->current_url.$this->ask.'pages='.($this->pages_current+1).'">下一页</a></div>';
  72. }
  73. //4 最后一页
  74. function lastpage(){
  75. echo '<div class="pages_norename"><a href="'.$this->current_url.$this->ask.'pages='.($this->totpages).'">尾页</a></div>';
  76. }
  77. //中间过渡页
  78. function morepage(){
  79. if($this->pages_current == 1){$newtj = $this->pages_current+9;}
  80. elseif($this->pages_current == 2){$newtj = $this->pages_current+8;}
  81. elseif($this->pages_current == 3){$newtj = $this->pages_current+7;}
  82. else{$newtj = $this->pages_current+6;}
  83. for($i=$this->pages_current-3;$i<=$newtj;$i++){
  84. if($i==$this->pages_current){$strong ='<strong>'; $strong2 ='</strong>';}else{$strong='';$strong2='';}
  85. if($i >=1){echo '<div class="pages_nore_more"><a href="'.$this->current_url.$this->ask.'pages='.$i.'">'.$strong.$i.$strong2.'</a></div>';}
  86. if($i >= $this->totpages){
  87. break;
  88. }
  89. }
  90. }
  91. //跳转页面
  92. function changepage(){
  93. echo '<div class="pages_se"><select name="dd">';
  94. for($i=1;$i<=$this->totpages;$i++){
  95. if($this->pages_current == $i){$selected = ' selected="selected"';}else{$selected = '';}
  96. echo '<option value="'.$i.'"'.$selected.'>第'.$i.'页</option>';
  97. }
  98. echo '</select></div>';
  99. }
  100. }
  101. ?>

该类可以自动识别 url 参数,避免了一般分页类丢失url参数问题,样式可以通过style属性进行修改,提供 首页 上一页 下一页 尾页 中间 过渡页 跳转菜单功能.