以前学习时做的,现在也经常用到~~感觉还可以。只是有时候不太方便~~比如做搜索的时候~~有些麻烦~~ 呵……其实还是蛮不错的~~
<?php
class Ipagination {
var $sqlstr; //SQL语句; var $totalpages; //当前页数; var $pagesize; //每页显示记录数; var $totalrecord; //总记录数; var $getpage; //返回的页; var $nextpage; //下一页; var $pervpage; //前一页; var $result; //记录集; var $page; //当前页数; //构造函数 function Ipagination() { $this->pagesize = 10; $this->getpage = 1; } function set_pagesize($get_pagesize) { $this->pagesize = $get_pagesize; } function set_page($get_page) { $this->getpage = $get_page; } function set_sql($get_sqlstr) { $this->sqlstr = $get_sqlstr; } function check_getpage($page) { if(!(eregi("[0-9]",$page))) { $page = 1; } if($page <= 1) { return (1); } if($page > $this->totalpages) { return ($this->totalpages); } return ($page); }
function show() { $this->totalrecord = mysql_num_rows(mysql_query($this->sqlstr)); $this->totalpages = ceil($this->totalrecord / $this->pagesize); $this->getpage = $this->check_getpage($this->getpage); $this->nextpage = $this->check_getpage($this->getpage + 1); $this->prevpage = $this->check_getpage($this->getpage-1); $this->result = mysql_query($this->sqlstr." limit ".($this->getpage - 1) * $this->pagesize .", ". $this->pagesize); } function nopage() { $this->showerror(); } function showerror() { echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tr width=\"100%\"><td>"; echo "<p align=\"center\">暂时没有记录!</p>"; echo "</td></tr></table>"; } function showpage($get_path) { if ($this->totalpages == 0) { $this->nopage(); } else { echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tr width=\"100%\"><td align=\"center\">"; $nbsp=" "; if ($this->getpage == 1) { echo "第一页".$nbsp."上一页".$nbsp; } else { echo "<a href=\"$get_path?page=1\">第一页</a>$nbsp<a href=\"$get_path?page=$this->prevpage\">上一页</a>$nbsp"; } if ($this->getpage == $this->totalpages) { echo "下一页".$nbsp."最后页".$nbsp; } else { echo "<a href=\"$get_path?page=$this->nextpage\">下一页</a>".$nbsp."<a href=\"$get_path?page=$this->totalpages\">最后页</a>".$nbsp; } echo "共有 <font color=#ff0000><b>".$this->totalrecord."</b></font> 条记录".$nbsp; echo "<font color=#ff0000><b>$this->getpage</b></font> (当前页)/ <font color=#ff0000><b>$this->totalpages</b></font> (总页数)".$nbsp; echo "</td></tr></table>"; } }
}
?> 
|