当前位置:博客首页>>PHP >> 阅读正文

既简单又简陋的php分页…

作者: 郑晓 分类: PHP 发布于: 2012-03-24 18:13 浏览:5,191 没有评论


又是大半天。。。以前写过的都忘的一干二净,而且是没用过函数的。。。写第一遍时算法想了半天还是错的,这个是第二遍。。依旧是BUG满Apache飞…哈哈。。凑合着。。

<?php
/**
 * @author 郑晓
 * @copyright 2012
 * $pageNavNum 导航页码
 * $pageNumStart 导航起始码数
 * $totalPageNum 总页数
 * $navDisNum 导航显示页码数
 * $totalContentNum 总内容数
 */

function page($pageTpl,$navDisNum,$perNum,$totalContentNum,$page) {
    $totalPageNum = ceil($totalContentNum/$perNum);  //总分页数
    $pageNumStart = (ceil($page/$navDisNum)-1)*$navDisNum ; //导航起始数
    $hPage = $navDisNum/2;
    $hPage = intval($hPage);
    if($page<=$hPage) {
         $start = 1;
        $end=$navDisNum;
    } else {
        $start=$page-$hPage;
        $end=$start+$navDisNum-1;
    }
    if($start>1) {$pageStr.='<a href="?page=1">[首页]</a>..';}
//  echo '起始值:'.$pageNumStart.'<br>导航显示:'.$navDisNum.'个<br>总页数:'.$totalPageNum.'<br>start='.$start.'end='.$end;
    if($end>=$totalPageNum){$start=$totalPageNum-$navDisNum+1;}
    for($pageNavNum=$start;$pageNavNum<=$end;$pageNavNum++) {
        if($pageNavNum>$totalPageNum) {break;}
        if($pageNavNum!=$page) {
            $pageStr.='<a href="?page='.$pageNavNum.'">['.$pageNavNum.']</a>&nbsp;&nbsp;';
        } else {
            $pageStr.=$pageNavNum.'&nbsp;&nbsp;';
        }
    }
    if($hPage<$totalPageNum-$page) {$pageStr.='..<a href="?page='.$totalPageNum.'">[末页]</a>';}
    $startNum = ($page-1)*$perNum;
    $pageArr=array();
    $pageArr['page']=$pageStr;
    $pageArr['sql']= "SELECT * FROM tpltest LIMIT $startNum,$perNum";
    return $pageArr;
}
?>

差不多这样吧,返回是一个简单的数组,0是分页条内容,1是sql查询。

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/simplephp-the-the-paging.html

发表评论

change vcode