当前位置:首页 >> 技术方案 >> 详情

php翻页逻辑的实现

发布时间:2010-12-16   浏览次数:91次   作者:野狼网络营销    标签:郑州seo 郑州seo推广 郑州网站推广
翻页逻辑,写了一个跟百度搜索下边的一样。下边是一个实现方法,有完整的注释。收藏备用。没有连接数据库,只简单的实现翻页逻辑。

 <!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=utf-8" />
<title>翻页程序</title>
<style type="text/css">
<!--
#page{font-size:14px;padding:0 0 0 18px;word-spacing:4px}
#page .n{font-size:16px}
a{text-decoration:underline}
-->
</style>
</head>
 
<body>
<?php
/********************************************
程序制作:野狼∵高山 QQ1026593492
功能说明:1.模仿百度翻页功能。
程序逻辑:
if(第一页){不显示上一页};
if(需要显示的页码少于最大页码数){从1显示到最后一页}
elseif(当前页码小于最大页码数的一半){页码左靠}
elseif(当前页码数大于 总页数减去页码数一半){页码右靠}
else{页码居中};
if()(最后一页){不显示下一页}
*********************************************/
?>
<?php
$totalRows=190;//数据库总条目数
$eachRows=11;//每页显示的条目数
$pages=0;//应该有的总页数
$p=0;//当前的页码
//声明标量结束
$pages=$totalRows%$eachRows?(int)($totalRows/$eachRows)+1:(int)($totalRows/$eachRows);//获取页数
$p=$_REQUEST["p"]==""?1:(int)$_REQUEST["p"];//获得当前的页码
function echo_PagesNum($i,$j){
if($i==$j){
echo("<span>".$i."</span>"." ");
}else{
echo("<a href='page.php?p=".$i."'>[".$i."]</a>"." ");
}
}//输出页码构造函数。如果两者相等则没有a
?>
<p id="page">
<?php
if($p!=1){
?>
<a href="page.php?p=<?php echo($p-1)?>" class="n">上一页</a>
<?php
}//如果页码不是1,则显示上一页按钮。
?>
<?php 
if($pages<=$eachRows){
//如果页面总数小于等于可显示的最多页码数,也即页码总数比较短
  for($i=1;$i<=$pages;$i++){
echo_PagesNum($i,$p);   
   }
}elseif($p<=$eachRows/2){
//往左靠
    for($i=1;$i<=$eachRows;$i++){
echo_PagesNum($i,$p);   
   } 
 
}elseif($p>=$pages-(int)($eachRows/2)){
//向右靠
echo($i);
 for($i=$pages-$eachRows+1;$i<=$pages;$i++){
echo_PagesNum($i,$p);   
   } 
}else{
//中间    
    for($i=$p-(int)($eachRows/2);$i<=$p-(int)($eachRows/2)+$eachRows-1;$i++){
echo_PagesNum($i,$p);   
   }
}
?>  
 <?php
if($p!=$pages){
?>
<a href="page.php?p=<?php echo($p+1)?>" class="n">下一页</a>
<?php
}//如果页码不是最后一个,则显示下一页按钮。
?>
</body>
</html>