php数据库改分页类 php mysql 分页( 六 )


?
================================
这个是很简单的..而且也写了注释..不知道合不合你的意..
PHP显示很多数据库信息,如何自动分页呢?代码这是我以前学php写的哈哈你可以看看
?php
/**
* 分页类
* 1.实例化分页类,例:mypage new page("SQL语句","每页显示记录条数");
* 2.调用类中的 genpage() 方法,返回分页生成的SQL语句;
* 3.执行新生成的SQL语句;
* 4.调用 showpage_1() 或 showpage_2() 方法显示分页的翻页(可也以自定义返回显示的方式)
* 实例:
*$page = new page("select * from ly",2);
*$sql=$page-genpage();
*$ar=mysql_query($sql);
*while($nu=mysql_fetch_array($ar)){
*echo $nu[0].'br';
*}
*$page-showpage_2();
*/
class page{
private $totalnum;//总记录数
private $pagecount;//总页数
private $f_pagenum;//当前页的第一条记录
private $sql;
private $page;//当前页
private $page_size;//每页显示数量
private $pagesql;
private $total;
private $url;//当前页url
private $beforepage;//上一页
private $nextpage;//下一页
function __construct($sql,$page_size){//传入sql语句和每页显示条数
$this-sql=$sql;
$this-page_size=$page_size;
$this-page=is_numeric($_GET[page]);
$this-page=substr($this-page,0,10);
$this-page=mysql_real_escape_string($this-page);
if(ereg("^[0-9]*[1-9][0-9]*$",$this-page)!=1){
$this-page=1;
}
if($this-page99999999){
$this-page=1;
}
}
function genpage(){
//
//if(!$this-page){
//$this-page=1;
//}
$this-pagesql = strstr($this-sqlcz," from ");
$this-pagesql = "select count(*) as ids ".$this-pagesql;
$this-total=mysql_query($this-sql);
$this-totalnum=mysql_num_rows($this-total);//总记录数
$this-pagecount=ceil($this-totalnum/$this-page_size); //总页数
$this-f_pagenum=$this-page_size*($this-page-1); //当前页的第一条记录
$this-sql .=" limit $this-f_pagenum,$this-page_size ";
return $this-sql;
}
//替换url中的page的页数
function replace_page($npage){
$this-url=$_SERVER["REQUEST_URI"];//获取当前url
$check = strpos($this-url, 'page=');//判断url中是否有page分页参数
if($check==false){//如果没有page分页参数
if(strpos($this-url, '?')==false){//判断是否url是否有“ ?”号 , 
$this-url=$this-url."?page=1";//如果没有“ ?”号,说明之前url没有参数
}else{
$this-url=$this-url."page=1";//如果有“ ?”号,说明有参数,追加参数要改用符号
}
}
$npage="page=".$npage;//跳转到的页
$zz='[page=\d*]';
return preg_replace($zz,$npage,$this-url);//正则替换掉url中的page参数,实现分页
}
//显示总页数
function show_all_page(){
return $this-pagecount;
}
//显示当前页
function show_current_page(){
return $this-page;
}
//显示首页和上一页
function show_firstAndup_page(){
if($this-page==1){
return "首页|上一页";
}else{
$this-beforepage=$this-page-1;
return "a href="https://www.04ip.com/post/.$this-replace_page(1)."首页/a|a href="https://www.04ip.com/post/.$this-replace_page($this-beforepage)."上一页/a";
}
}
//显示下一页和最后页
function show_lastAnddown_page(){
if(($this-page==$this-pagecount)||($this-pagecount==0)){
return "下一页|尾页";
}else{
$this-nextpage=$this-page+1;
return "a href="https://www.04ip.com/post/.$this-replace_page($this-nextpage)."下一页/a|a href="https://www.04ip.com/post/.$this-replace_page($this-pagecount)."尾页/a";
}
}
//循环显示页数

推荐阅读