分頁頁碼顯示算法
/** * 獲取分頁的HTML內(nèi)容 * @param integer $page 當(dāng)前頁 * @param integer $pages 總頁數(shù) * @param string $url 跳轉(zhuǎn)url地址 最后的頁數(shù)以 '&page=x' 追加在url后面 * * @return string HTML內(nèi)容; */ public static function getPageHtml($page, $pages, $url){ //最多顯示多少個頁碼 $_pageNum = 5; //當(dāng)前頁面小于1 則為1 $page = $page<1?1:$page; //當(dāng)前頁大于總頁數(shù) 則為總頁數(shù) $page = $page > $pages ? $pages : $page; //頁數(shù)小當(dāng)前頁 則為當(dāng)前頁 $pages = $pages < $page ? $page : $pages; //計算開始頁 $_start = $page - floor($_pageNum/2); $_start = $_start<1 ? 1 : $_start; //計算結(jié)束頁 $_end = $page + floor($_pageNum/2); $_end = $_end>$pages? $pages : $_end; //當(dāng)前顯示的頁碼個數(shù)不夠最大頁碼數(shù),在進(jìn)行左右調(diào)整 $_curPageNum = $_end-$_start+1; //左調(diào)整 if($_curPageNum<$_pageNum && $_start>1){ $_start = $_start - ($_pageNum-$_curPageNum); $_start = $_start<1 ? 1 : $_start; $_curPageNum = $_end-$_start+1; } //右邊調(diào)整 if($_curPageNum<$_pageNum && $_end<$pages){ $_end = $_end + ($_pageNum-$_curPageNum); $_end = $_end>$pages? $pages : $_end; } $_pageHtml = '<ul class="pagination">'; /*if($_start == 1){ $_pageHtml .= '<li><a title="第一頁">«</a></li>'; }else{ $_pageHtml .= '<li><a title="第一頁" href="'.$url.'&page=1">«</a></li>'; }*/ if($page>1){ $_pageHtml .= '<li><a title="上一頁" href="'.$url.'&page='.($page-1).'">«</a></li>'; } for ($i = $_start; $i <= $_end; $i++) { if($i == $page){ $_pageHtml .= '<li class="active"><a>'.$i.'</a></li>'; }else{ $_pageHtml .= '<li><a href="'.$url.'&page='.$i.'">'.$i.'</a></li>'; } } /*if($_end == $pages){ $_pageHtml .= '<li><a title="最后一頁">»</a></li>'; }else{ $_pageHtml .= '<li><a title="最后一頁" href="'.$url.'&page='.$pages.'">»</a></li>'; }*/ if($page<$_end){ $_pageHtml .= '<li><a title="下一頁" href="'.$url.'&page='.($page+1).'">»</a></li>'; } $_pageHtml .= '</ul>'; echo $_pageHtml; }
其它:
<?php// 數(shù)據(jù)庫連接常量define('DB_HOST', 'localhost');define('DB_USER', 'root');define('DB_PWD', '');define('DB_NAME', 'guest');// 連接數(shù)據(jù)庫function conn(){$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME);mysqli_query($conn, "set names utf8");return $conn;}//獲得結(jié)果集function doresult($sql){$result=mysqli_query(conn(), $sql);return $result;}//結(jié)果集轉(zhuǎn)為對象集合function dolists($result){return mysqli_fetch_array($result, MYSQL_ASSOC);}function totalnums($sql) {$result=mysqli_query(conn(), $sql);return $result->num_rows;}// 關(guān)閉數(shù)據(jù)庫function closedb(){if (! mysqli_close()) {exit('關(guān)閉異常');}}?>
單實(shí)現(xiàn)了翻頁功能,數(shù)據(jù)庫請自行配置結(jié)構(gòu)<?phpinclude 'mysqli.func.php';// 總記錄數(shù)$sql = "SELECT dg_id FROM tb_user ";$totalnums = totalnums($sql);// 每頁顯示條數(shù)$fnum = 8;// 翻頁數(shù)$pagenum = ceil($totalnums / $fnum);// 頁數(shù)常量@$tmp = $_GET['page'];//防止惡意翻頁if ($tmp > $pagenum)echo "<script>window.location.href='index.php'</script>";//計算分頁起始值if ($tmp == "") {$num = 0;} else {$num = ($tmp - 1) * $fnum;}// 查詢語句$sql = "SELECT dg_id,dg_username FROM tb_user ORDER BY dg_id DESC LIMIT " . $num . ",$fnum";$result = doresult($sql);// 遍歷輸出while (! ! $rows = dolists($result)) {echo $rows['dg_id'] . " " . $rows['dg_username'] . "<br>";}// 翻頁鏈接for ($i = 0; $i < $pagenum; $i ++) {echo "<a href=index.php?page=" . ($i + 1) . ">" . ($i + 1) . "</a>";}?>
如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點(diǎn)擊進(jìn)入論壇