一个php+mysql分页类代码

发布时间:2020-05-12编辑:脚本学堂
分享一个php分页类代码,php+mysql分页类,可以根据需要进行修改与完善,用作php分页代码,学习下php分页原理,很不错的。

php分页类代码,封装的不错,拿去改改就能很好用的分页类:

专题推荐:php分页代码大全    php分页原理     php分页类

1,php分页类代码:
 

复制代码 代码示例:

<?php 
/************************************ 
类名: pagesupport
功能:分页显示mysql/ target=_blank class=infotextkey>mysql数据库中的数据 
*************************************/  
class pagesupport{  
//属性 
var $sql;//所要显示数据的SQL查询语句  
var $page_size;//每页显示最多行数  
 
var $start_index;//所要显示记录的首行序号 
var $total_records;//记录总数  
var $current_records;//本页读取的记录数  
var $result;//读出的结果  
 
var $total_pages;//总页数
var $current_page;//当前页数 
var $display_count = 30; //显示的前几页和后几页数 
 
var $arr_page_query;  //数组,包含分页显示需要传递的参数  
 
var $first; 
var $prev; 
var $next; 
var $last; 
 
//方法 
/********************************************* 
构造函数:__construct()
输入参数:
$ppage_size:每页显示最多行数
***********************************************/  
 function PageSupport($ppage_size) 
 {  
$this->page_size=$ppage_size;  
$this->start_index=0; 
 }  

/********************************************* 
构造函数:__destruct()
输入参数:
***********************************************/  
 function __destruct() 
 { 
 } 
 
/********************************************* 
get函数:__get()
***********************************************/  
function __get($property_name) 
{
   if(isset($this->$property_name))  
{  
return($this->$property_name);  
}  
else  
{  
return(NULL);  
}  
 } 
  
/********************************************* 
set函数:__set()
***********************************************/  
 function __set($property_name, $value)  
 {  
$this->$property_name = $value;  
 }  
 
/********************************************* 
函数名:read_data
功能:根据SQL查询语句从表中读取相应的记录
返回值:属性二维数组result[记录号][字段名]
***********************************************/  
 function read_data() 
 {  
$psql=$this->sql;  
 
//查询数据,数据库链接等信息应在类调用的外部实现 
$result=mysql_query($psql) or die(mysql_error());  
$this->total_records=mysql_num_rows($result);  
 
//利用LIMIT关键字获取本页所要显示的记录 
if($this->total_records>0)  

$this->start_index = ($this->current_page-1)*$this->page_size; 
$psql=$psql." LIMIT ".$this->start_index." , ".$this->page_size;  
 
$result=mysql_query($psql) or die(mysql_error());  
$this->current_records=mysql_num_rows($result);  
 
//将查询结果放在result数组中 
$i=0;  
while($row=mysql_fetch_Array($result)) 
{  
$this->result[$i]=$row;  
$i++;  
}  

 
//获取总页数、当前页信息 
$this->total_pages=ceil($this->total_records/$this->page_size);
$this->first=1; 
$this->prev=$this->current_page-1; 
$this->next=$this->current_page+1; 
$this->last=$this->total_pages; 
 } 
 
 /********************************************* 
函数名:standard_navigate()
功能:显示首页、下页、上页、未页
***********************************************/  
function standard_navigate()  

echo "<div align=center>"; 
echo "<form action=".$_SERVER['PHP_SELF']." method="get">"; 
 
echo "<font color = red size ='4'>第".$this->current_page."页/共".$this->total_pages."页</font>";  
echo ""; 
 
echo "跳到<input type="text" size=?" name="current_page" value='".$this->current_page."'/>页"; 
echo "<input type="submit" value="提交"/>"; 
 
//生成导航链接 
if ($this->current_page > 1) { 
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->first.">首页</A>|";  
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->prev.">上一页</A>|";  

 
if( $this->current_page < $this->total_pages) { 
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->next.">下一页</A>|"; 
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->last.">末页</A>";  

 
echo "</form>"; 
echo "</div>"; 
}  
  
/********************************************* 
函数名:full_navigate()
功能:显示首页、下页、上页、未页  
生成导航链接 如1 2 3 ... 10 11
***********************************************/  
 function full_navigate()  
 { 
echo "<div align=center>"; 
echo "<form action=".$_SERVER['PHP_SELF']." method="get">"; 
 
echo "<font color = red size ='4'>第".$this->current_page."页/共".$this->total_pages."页</font>";  
echo ""; 
 
echo "跳到<input type="text" size=?" name="current_page" value='".$this->current_page."'/>页"; 
echo "<input type="submit" value="提交"/>"; 
 
//生成导航链接 如1 2 3 ... 10 11 
$front_start = 1; 
if($this->current_page > $this->display_count){ 
$front_start = $this->current_page - $this->display_count; 

for($i=$front_start;$i<$this->current_page;$i++){ 
echo "<a href=".$_SERVER['PHP_SELF']."?page=".$i.">[".$i ."]</a> "; 

 
echo "[".$this->current_page."]"; 
 
$displayCount = $this->display_count; 
if($this->total_pages > $displayCount&&($this->current_page+$displayCount)<$this->total_pages){ 
$displayCount = $this->current_page+$displayCount; 
}else{ 
$displayCount = $this->total_pages; 

 
for($i=$this->current_page+1;$i<=$displayCount;$i++){ 
echo "<a href=".$_SERVER['PHP_SELF']."?current_page=".$i.">[".$i ."]</a> "; 

 
//生成导航链接 
if ($this->current_page > 1) { 
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->first.">首页</A>|";  
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->prev.">上一页</A>|";  

 
if( $this->current_page < $this->total_pages) { 
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->next.">下一页</A>|"; 
  echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->last.">末页</A>";  

 
echo "</form>"; 
echo "</div>"; 
 }  
}  
?> 

分页类用法:
 

复制代码 代码示例:

<div class="index"> 
<?php  
include_once("fenye_php.php");   //引入类 
/////////////////////////////////////////////////////////////////////// 
$con = mysql_connect("localhost","root","");
if (!$con) 

  die('Could not connect: ' . mysql_error()); 

mysql_select_db("myblog", $con);//选取数据库 
 
$PAGE_SIZE=10;//设置每页显示的数目
/////////////////////////////////////////////////////////////////////// 
$pageSupport = new PageSupport($PAGE_SIZE); //实例化PageSupport对象 
$current_page=$_GET["current_page"];//分页当前页数 
if (isset($current_page)) { 
   $pageSupport->__set("current_page",$current_page); 
} else { 
$pageSupport->__set("current_page",1); 

 
$pageSupport->__set("sql","select * from article ");  
$pageSupport->read_data();//读数据 
 
if ($pageSupport->current_records > 0) //如果数据不为空,则组装数据 

for ($i=0; $i<$pageSupport->current_records; $i++) 

$title = $pageSupport->result[$i]["title"]; 
$content = $pageSupport->result[$i]["content"]; 
 
$part=substr($content,0,400); 
//循环输出每条数据 
echo '<div class="index_side"> 
<div class="index_title">'.$title.'</div> 
<div class="index_content">'.$part.'</div> 
<div class="index_button"> 
   <a href="#">update</a>   <a href="#">delet</a> 
</div> 
</div>'; 


$pageSupport->standard_navigate(); //调用类里面的这个函数,显示出分页HTML 
//关闭数据库 
mysql_close($con); 
?> 
</div>