是啊,我有个留言板的分页程序,不知道你需要不需要。
论坛的分页肯定不能像留言板,因为要考虑到负载,特别是大型的站点。
首先在数据库要分页。
我只搞过C#+MicroSoftSql2000的分页。用的是存储过程。而mysql的具体的我不够了解,只能帮你顶。
如果有高手能稍微讲解下或者,列出相关技术,我也学习,并感谢下。
论坛的分页肯定不能像留言板,因为要考虑到负载,特别是大型的站点。
首先在数据库要分页。
我只搞过C#+MicroSoftSql2000的分页。用的是存储过程。而mysql的具体的我不够了解,只能帮你顶。
如果有高手能稍微讲解下或者,列出相关技术,我也学习,并感谢下。
这个是discuz的函数,参数部分我给了注释;/*
* $num 数据总行数
* $prepage 每页显示行数
* $curpage 当前页码
* $mpurl 需翻页的程序地址
* $maxpages 可浏览的最大页码
*/
function multi($num, $perpage, $curpage, $mpurl, $maxpages = 0) {
$multipage = '';
$mpurl .= strpos($mpurl, '?') ? '&' : '?';
if($num > $perpage) {
$page = 10;
$offset = 2; $realpages = @ceil($num / $perpage);
$pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages; if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $from + $page - 1;
if($from < 1) {
$to = $curpage + 1 - $from;
$from = 1;
if($to - $from < $page) {
$to = $page;
}
} elseif($to > $pages) {
$from = $pages - $page + 1;
$to = $pages;
}
} $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a class="p_redirect" href="'.$mpurl.'page=1">|‹</a>' : '').
($curpage > 1 ? '<a class="p_redirect" href="'.$mpurl.'page='.($curpage - 1).'">‹‹</a>' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $curpage ? '<a class="p_curpage">'.$i.'</a>' :
'<a href="'.$mpurl.'page='.$i.'" class="p_num">'.$i.'</a>';
} $multipage .= ($curpage < $pages ? '<a class="p_redirect" href="'.$mpurl.'page='.($curpage + 1).'">››</a>' : '').
($to < $pages ? '<a class="p_redirect" href="'.$mpurl.'page='.$pages.'">›|</a>' : '').
($curpage == $maxpages ? '<a class="p_redirect" href="misc.php?action=maxpages&pages='.$maxpages.'">›?</a>' : '').
($pages > $page ? '<a class="p_pages" style="padding: 0px"><input class="p_input" type="text" name="custompage" onKeyDown="if(event.keyCode==13) {window.location=\''.$mpurl.'page=\'+this.value; return false;}"></a>' : ''); $multipage = $multipage ? '<div class="p_bar"><a class="p_total"> '.$num.' </a><a class="p_pages"> '.$curpage.'/'.$realpages.' </a>'.$multipage.'</div>' : '';
}
return $multipage;
}