//分页函数
// $num文章数 $perpage每页显示数 $curpage当前页 $mpurl链接
function multi($num, $perpage, $curpage, $mpurl) {
global $config;
$multipage = '';
$mpurl .= strpos($mpurl, '?') ? '&' : '?';
if($num > $perpage) {
$page = 9;
$offset = 4;
$pages = @ceil($num / $perpage);
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $curpage + $page - $offset - 1;
if($from < 1) {
$to = $curpage + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages) {
$to = $page;
}
} elseif($to > $pages) {
$from = $curpage - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages) {
$from = $pages - $page + 1;
}
}
}
$multipage = ($curpage - $offset > 1 && $pages > $page ? '<span class="pagelink2"><a href="'.$mpurl.'page=1">«</a></span> ' : '').($curpage > 1 ? '<span class="pagelink2"><a href="'.$mpurl.'page='.($curpage - 1).'">‹</a></span> ' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $curpage ? '<span class="pagecurrent">'.$i.'</span> ' : '<span class="pagelink"><a href="'.$mpurl.'page='.$i.'">'.$i.'</a></span> ';
}
$multipage .= ($curpage < $pages ? ' <span class="pagelink2"><a href="'.$mpurl.'page='.($curpage + 1).'">›</a></span>' : '').($to < $pages ? ' <span class="pagelink2"><a href="'.$mpurl.'page='.$pages.'">»</a></span>' : '');
$multipage = $multipage ? '<div style="padding-right: 0px; padding-left: 0px; padding-bottom: 10px; padding-top: 5px"><span class="pagelink3">Record:'.$num.'</span> '.$multipage.'</div>' : '';
}
return $multipage;
}
用法:
//----------分页读取日志------------
$result = $db->query("select blogid from ".$db_prefix."blog ");
$tatol = $db->num_rows($result);
if($_GET['page']){
$curpage=$_GET['page'];
}else{
$curpage='1';
}
$pagenum = 20; //每页显示数量
$start = $pagenum*($curpage-1); //读取开始数
$pageurl = './blog.php';
$multipage = multi($tatol, $pagenum, $curpage, $pageurl);
//-----------------------
$result = $db->query("select * from blog order by blogid desc limit ".$start.",".$pagenum);
echo "<center>".$multipage."</center>";