自己写了一个分页函数
/**
* 分页显示函数
* @param int $count 总数据条数
* @param int $rows 每页显示数据
* @param int $pages 当前页
* @param string $basicUrl 起始URL(即参数前URL)
* @param string $parm 参数(不带?号)
* @param int $showMaxPageLink 最大显示页码数
*/
function show_pages($count ,$rows , $page ,$basicUrl ,$parm ,$showMaxPageLink=11){
if($count<=$rows || $count<=0){
return ;
}
//$showMaxPageLink = 11; //最大显示页码数
$pages = ceil($count/$rows); //页数
$parm = ('' != $parm) ? '?'.$parm.'&page=' : '?page=';
$url = $basicUrl.$parm;
//起始显示页
$beginPage = $page - intval($showMaxPageLink/2);
$beginPage = $beginPage>0 ? $beginPage : 1;
//结束显示页
$endpage = $beginPage + $showMaxPageLink -1;
$endpage = $endpage<=$pages ? $endpage : $pages;
//如果页尾不够跨度,起始页需要继续前行
if(($endpage-$beginPage)<$showMaxPageLink && $beginPage>1){
$beginPage = $endpage - $showMaxPageLink + 1; //加1表示减去自己的位置
$beginPage = $beginPage>0 ? $beginPage : 1;
}
$html = '<a href="'.$basicUrl.$parm.'1">首页</a>';
//显示前一页
if($page > 1) $html .= '<a href="'.$url.($page-1).'">上一页</a>';
//显示...链接(表示在起始页前还有页面)
if(($beginPage-1)>=1) $html .= '<a href="'.$url.($beginPage-1).'">...</a>';
//显示页面列表
for ($i = $beginPage; $i<=$endpage; $i++){
if($i == $page)
$html .= '<span>'.$i.'</span>';
else
$html .= '<a href="'.$url.$i.'">'.$i.'</a>';
}
//显示...链接(表示在结束页后还有页面)
if($endpage+1<=$pages) $html .= '<a href="'.$url.($endpage+1).'">...</a>';
//显示后一页
if($page <= ($pages-1)) $html .= '<a href="'.$url.($page+1).'">下一页</a>';
$html .= '<a href="'.$url.$pages.'">末页</a>';
return $html;
}
显示效果如:
首页 上一页 ... 2 3 4 5 6 7 8 9 10 11 12 ... 下一页 末页
浙公网安备 33010602011771号