一个典型的PHP分页实例代码分享

时间:2021-12-07 15:23:13

代码如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>php make page list</title> 
<style type="text/CSS"> 
<!-- 
.page a:link { 
color: #0000FF; 
text-decoration: none; 

.page a:visited { 
text-decoration: none; 
color: #0000FF; 

.page a:hover { 
text-decoration: none; 
color: #0000FF; 

.page a:active { 
text-decoration: none; 
color: #0000FF; 

.page{color:#0000FF;} 
--> 
</style> 
</head> 
<body> 
<table width="530" height="103" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<th width="30" height="38" bgcolor="#E3E3E3" scope="col">ID</th> 
<th width="500" bgcolor="#E3E3E3" scope="col">文章标题</th> 
</tr> 
<?php 
/* 
* Created on 2010-4-17 

* Order by Kove Wong 
*/ 
$link=MySQL_connect('localhost','root','haoxiazai1987'); 
mysql_select_db('pagelist'); 
mysql_query('set names gbk'); 

$Page_size=10; 

$result=mysql_query('select * from v_char'); 
$count = mysql_num_rows($result); 
$page_count = ceil($count/$Page_size); 

$init=1; 
$page_len=7; 
$max_p=$page_count; 
$pages=$page_count; 

//判断当前页码 
if(empty($_GET['page'])||$_GET['page']<0){ 
$page=1; 
}else { 
$page=$_GET['page']; 


$offset=$Page_size*($page-1); 
$sql="select * from v_char limit $offset,$Page_size"; 
$result=mysql_query($sql,$link); 
while ($row=mysql_fetch_array($result)) { 
?> 
<tr> 
<td bgcolor="#E0EEE0" height="25px"><div align="center"> 
<?php echo $row['id']?> 
</div></td> 
<td bgcolor="#E0EEE"><div align="center"> 
<?php echo $row['name']?> 
</div></td> 
</tr> 
<?php 

$page_len = ($page_len%2)?$page_len:$pagelen+1;//页码个数 
$pageoffset = ($page_len-1)/2;//页码个数左右偏移量 

$key='<div class="page">'; 
$key.="<span>$page/$pages</span> "; //第几页,共几页 
if($page!=1){ 
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一页</a> "; //第一页 
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一页</a>"; //上一页 
}else { 
$key.="第一页 ";//第一页 
$key.="上一页"; //上一页 

if($pages>$page_len){ 
//如果当前页小于等于左偏移 
if($page<=$pageoffset){ 
$init=1; 
$max_p = $page_len; 
}else{//如果当前页大于左偏移 
//如果当前页码右偏移超出最大分页数 
if($page+$pageoffset>=$pages+1){ 
$init = $pages-$page_len+1; 
}else{ 
//左右偏移都存在时的计算 
$init = $page-$pageoffset; 
$max_p = $page+$pageoffset; 



for($i=$init;$i<=$max_p;$i++){ 
if($i==$page){ 
$key.=' <span>'.$i.'</span>'; 
} else { 
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>"; 


if($page!=$pages){ 
$key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页</a> ";//下一页 
$key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一页</a>"; //最后一页 
}else { 
$key.="下一页 ";//下一页 
$key.="最后一页"; //最后一页 

$key.='</div>'; 
?> 
<tr> 
<td colspan="2" bgcolor="#E0EEE0"><div align="center"><?php echo $key?></div></td> 
</tr> 
</table> 
</body> 
</html>