资源描述:
《PHP通用分页类详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、**使用实例:*$result=mysql_query("SELECT*FROMtb_pagetest");//从数据库中查询所需显示的数据*$total=mysql_num_rows($result);//查询到的数据的总条数*$pagesize=5;//每页显示的记录条数*$url=$_SERVER['REQUEST_URI'];//请求的URI**$dividepageclass=newDividePage($url,$total,$pagesize);//创建分页
2、类,(类能自动初始化)*$limitstr=$dividepageclass->getLimitStr();//取得当前页要显示的记录开始序号和每页显示条数,如:0,5(显示从0开始的5条记录)*echo$dividepageclass->getAllPageNav();//显示所有分页导航条,如:显示第11-13条记录,共13条记录。首页上一页下一页尾页到第1页,共3页**$sql='SELECT*FROMtb_pagetestlimit'.$limitstr;*$result=mysql_query($sql);//从数据库中取得当前页要显示的记录集,然后显示就O
3、K*如:*while($row=mysql_fetch_array($result))*echo"
".$row[title]."4、".$row[author];*/classDividePage{//分页类private$total;//要显示的总记录数private$url;//请求的URL地址private$displaypg;//每页显示的记录数,默认为每页显示10条记录private$page;//当前页码private$lastpg;//总页数,即最后一页的页码private$prepg;//前一页private$nextpg;//后一页pri
5、vate$firstcount;//记录条数开始的序号从0开始private$startd;//记录条数开始的记录号.private$stopd;//记录条数结束的记录号.//构造函数publicfunction__construct($url,$total,$displaypg){$this->url=$url;//请求的URL$this->total=$total;//总记录数//if($displaypg=='')$this->displaypg=$displaypg;//每页显示的记录数$this->initDividePage();//初始化分页类//ech
6、o','.$this->displaypg;}//初始化分页类privatefunctioninitDividePage(){//分析URL$parse_url=parse_url($this->url);//将URL解释为有固定键值对的数组$url_query=$parse_url['query'];//取出URL中的查询字符串if($url_query){//如果有查询字符串,则删除查询字串中当前页的查询字段如:&page=$page或page=$pageereg('(^
7、&)page=([0-9]*)',$url_query,$k);$this->page=$k
8、[2];//取得当前页的值$url_query=ereg_replace("(^
9、&)page=$this->page",'',$url_query);//删除查询字串中当前页的查询字段如:&page=$page或page=$page$this->url=str_replace($parse_url['query'],$url_query,$this->url);//保留其他的查询字串,$this->page=$this->page?$this->page:1;//如果查询字符串中没有当前页的值就设当前页为1if($url_query){//如果有其他查询字符串,则以
10、&page=$page形式添加翻页查询字串$this->url.='&page';}else{//如果没有其他查询字串,则以page=$page形式添加翻页查询字串$this->url.='page';}}else{//如果没有查询字串,则在URL后添加?page=$page形式的翻页查询字串$this->page=1;$this->url.='?page';}$this->lastpg=ceil($this->total/$this->displaypg);//计算总页数,即最后一页的页码$this->page=min($this->lastpg,