首页 > 语言 > PHP > 正文

新手写的分页类

2024-09-04 11:43:57
字体:
来源:转载
供稿:网友

刚学PHP,写的不好,请大家别笑,用Mysql数据库,我还不知道在类中怎么捕捉错误,然后返回。

代码如下:

  1. <?php  
  2. class Pageslice{  
  3. var $pageSize;//每页显示数据条数  
  4. var $page;//当前页面  
  5. var $totalPages;//总页数  
  6. var $startNum;//strat  
  7. var $dbtable;//要查询的数据表  
  8. var $rs;//记录集  
  9.  
  10.  
  11. function setUnit($n){//设置每页显示数据条数  
  12. $this->pageSize=$n;  
  13. $this->getTotalPages();  
  14. $this->getPage();  
  15. }  
  16.  
  17.  
  18. function bindTable($tb){//绑定表  
  19. $this->dbtable = $tb;  
  20. $this->setUnit(5);//默认显示5条记录  
  21. }  
  22.  
  23.  
  24. function getTotalPages(){//取得总页数  
  25. $tb =$this->dbtable;  
  26. $sqlStr = "select * from ".$tb;  
  27. $rsStr = mysql_query($sqlStr);  
  28. $this->totalPages = ceil(count(mysql_fetch_row($rsStr))/$this->pageSize);  
  29. return $this->totalPages;  
  30. }  
  31.  
  32.  
  33. function getPage(){//得到当前页码  
  34. if$_GET['page'] == NULL || abs($_GET['page']) >$this->totalPages ){  
  35. $this->page = 1;  
  36. }else{  
  37. $this->page =$_GET['page'];  
  38. }  
  39. return $this->page;  
  40. }  
  41.  
  42.  
  43. function getRS(){//取记录集  
  44. $this->startNum = ($this->page-1)*$this->pageSize;  
  45. $tb = $this->dbtable;  
  46. $rs_sql = "select * from ".$tb." order by id DESC limit "$this->startNum.",".$this->pageSize;  
  47. $this->rs = mysql_query($rs_sql);  
  48. return $this->rs;  
  49. }  
  50.  
  51.  
  52. function showFlip(){//显示分页控件  
  53. $page_string ="&nbsp;&nbsp;总共".$this->totalPages."页,当前第".$this->page."页&nbsp;&nbsp;";   
  54. if$this->page == 1 ){  
  55. $page_string.="第一页|上一页|";  
  56. }else{  
  57. $page_string.= "<a href=?page=1>第一页</a>|<a href=?page=".($this->page-1).">上一页</a>|";  
  58. }   
  59. if( ($this->page == $this->totalPages) || ($this->totalPages == 0) ){  
  60. $page_string.=" 下一页|尾页";  
  61. }else{  
  62. $page_string.= "<a href=?page=".($this->page+1).">下一页</a>|<a href=?page=".$this->totalPages.">尾页</a>";   
  63. }  
  64. print $page_string;   
  65. }  
  66.  
  67.  
  68. }  
  69. ?>[/php]  
  70.  
  71. 应用,假设已经建立了test表,并且已经连上  
  72. [php]$pages = new Pageslice;//建立分页对象  
  73. $pages->bindTable('test');//读取test表  
  74. //$pages->setUnit(3);//可以重新设置显示条数  
  75. $rs = $pages->getRS();  
  76. /*
  77. .........其他代码  
  78. */ 
  79. $pages->showFlip()  
  80. //然后在需要显示分页的地方调用分页 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表