/** * 分页函数 * by hkshadow * 2011-04-07 * Enter description here ... * @param 结果总条数count(); $num * @param 每页条数 $perpage * @param 当前页 $curpage * @param 分页地址$url = 'index.php?' . $para; $mpurl * @param 数字分页数量 $page * $multipage = ListMulti ( $max, $tpp, $page, $url ,0,5); */ function ListMulti($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = TRUE, $simple = FALSE) { $multipage = ''; $mpurl .= strpos ( $mpurl, '?' ) ? '&' : '?'; $realpages = 1; /* if($num > $perpage) {*/ $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 = '<li><a href="' . $mpurl . 'page=1" class="prev">首页</a></li>'; $multipage .= ($curpage - $offset > 1 && $pages > '<li>' . $page . '</li>' ? '<li><a href="' . $mpurl . 'page=1" class="first">1 ...</a></li>' : '') . ($curpage > 1 && ! $simple ? '<li><a href="' . $mpurl . 'page=' . ($curpage - 1) . '" class="prev">上一页</a></li>' : ''); for($i = $from; $i <= $to; $i ++) { $multipage .= $i == $curpage ? '<li class=currentPage>' . $i . '</li>' : '<li><a href="' . $mpurl . 'page=' . $i . '">' . $i . '</a></li>'; } $multipage .= ($curpage < $pages && ! $simple ? '<li><a href="' . $mpurl . 'page=' . ($curpage + 1) . '">下一页</a></li><li><a href="' . $mpurl . 'page=' . $pages . '" class="next">末页</a></li>' : '') . ($to < $pages ? '<li><a href="' . $mpurl . 'page=' . $pages . '" class="last">... ' . $realpages . '</a></li>' : '') . (! $simple && $pages > $page && 0 > 1 ? '<input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=\'' . $mpurl . 'page=\'+this.value; return false;}" />' : ''); $multipage = $multipage ? $multipage . (! $simple ? '<li>共 ' . $pages . ' 页' . $num . ' 条</li>' : '') : ''; /* }*/ return $multipage; }
使用方法
$max = $dsql->ExecuteNoneQuery2 ( $sql ); //返回一个总数结果 //分页 $tpp = "4"; $realpages = @ceil ( $max / $tpp ); if ($page > $realpages) { $page = $realpages; } $para = "?mtype=0&uid=$uid&action=mybidding"; //地址 $page = isset ( $page ) ? max ( 1, intval ( $page ) ) : 1; $start_limit = ($page - 1) * $tpp; $url = 'index.php' . $para; $multipage = ListMulti ( $max, $tpp, $page, $url ); //$sql.= $limitsql . $start_limit . ',' . $tpp; echo $multipage; //输出分页