這兩天在學習PHPphp
想作一個前端後臺都包含的網站css
看了一些視頻發現大牛們都是將封裝起來實現代碼的重用性html
本人技拙也寫了個分頁條函數的封裝前端
分頁條在用PHP網站開發中十分經常使用mysql
經過封裝代碼來提升網站開發效率sql
function pageBar($table,$pageSize,$showPage=5){ //第一個參數爲表名 第二個參數爲每頁顯示幾個 須要與以前遍歷數據處相同 $page = $_GET['p']; $sql1 = "select COUNT(*) from ".$table; $res1 = mysql_fetch_array(mysql_query($sql1)); $total = $res1[0]; $totalPage = ceil($total / $pageSize); //獲取總頁數 $pageOffset = ($showPage - 1) / 2; //頁碼偏移量 $pageBanner = ""; $pageSelf = $_SERVER['PHP_SELF']; $start = 1; //開始頁碼 $end = $totalPage; //結束頁碼 if($page > 1){ $pageBanner .= "<a href='".$pageSelf."?p=1'>首頁</a>"; $pageBanner .= "<a href='".$pageSelf."?p=".($page - 1)."'>上一頁</a>"; } if($totalPage > $showPage){ //當總頁數大於顯示頁數時 if($page > $pageOffset + 1){ //噹噹前頁大於頁碼偏移量+1時,也就是當頁碼爲4時 開始頁碼1替換爲... $pageBanner .= "..."; } if($page > $pageOffset){ //噹噹前頁大於頁碼偏移量時 開始頁碼變爲當前頁-偏移頁碼 $start = $page - $pageOffset; $end = $totalPage > $page + $pageOffset ? $page + $pageOffset : $totalPage; //若是當前頁數+偏移量大於總頁數 那麼$end爲總頁數 }else{ $start = 1; $end = $totalPage > $showPage ? $showPage : $totalPage; } if($page + $pageOffset > $totalPage){ $start = $start - ($page + $pageOffset - $end); } } for($i = $start ; $i <= $end ; $i++){ //循環出頁碼 if($i == $page){ $pageBanner .= "<span>".$i."</span>"; }else{ $pageBanner .= "<a href='".$pageSelf."?p=".$i."'>".$i."</a>"; } } if($totalPage > $showPage && $totalPage > $page + $pageOffset){ //當總頁數大於頁碼顯示頁數時 且總頁數大於當前頁+偏移量 $pageBanner .= "..."; } if($page < $totalPage){ $pageBanner .= "<a href='".$pageSelf."?p=".($page + 1)."'>下一頁</a>"; $pageBanner .= "<a href='".$pageSelf."?p=".$totalPage."'>尾頁</a>"; } echo $pageBanner; }
上面是進行的代碼封裝 能夠直接來調用 函數
pageBar($table,$pageSize,$showPage=5);學習
三個參數解釋以下fetch
$table 表名網站
$pageSize 每頁顯示多少條 須要與以前遍歷顯示數據相同
$showPage 可選參數,可見頁數,默認爲5,注意裏面須要填奇數!
當$showPage=5時 這裏可見頁數只有5頁
完整代碼以下圖
1 <?php 2 $link = mysql_connect('localhost','root','123456'); 3 mysql_select_db('test',$link); 4 mysql_query("set names UTF8"); 5 $page = $_GET['p']; 6 $pageSize = 2; 7 $sql = "select * from page limit ".($page-1)*$pageSize.",$pageSize"; 8 $res = mysql_query($sql); 9 echo "<table width=40% border=1 cellspacing=0>"; 10 echo "<tr><td>用戶名</td><td>密碼</td></tr>"; 11 while($row = mysql_fetch_array($res)){ 12 echo "<tr><td>".$row['username']."</td><td>".$row['password']."</td></tr>"; 13 } 14 echo "</table>"; 15 16 function pageBar($table,$pageSize,$showPage=5){ //第一個參數爲表名 第二個參數爲每頁顯示幾個 須要與以前遍歷數據處相同 17 $page = $_GET['p']; 18 $sql1 = "select COUNT(*) from ".$table; 19 $res1 = mysql_fetch_array(mysql_query($sql1)); 20 $total = $res1[0]; 21 $totalPage = ceil($total / $pageSize); //獲取總頁數 22 $pageOffset = ($showPage - 1) / 2; //頁碼偏移量 23 $pageBanner = ""; 24 $pageSelf = $_SERVER['PHP_SELF']; 25 $start = 1; //開始頁碼 26 $end = $totalPage; //結束頁碼 27 if($page > 1){ 28 $pageBanner .= "<a href='".$pageSelf."?p=1'>首頁</a>"; 29 $pageBanner .= "<a href='".$pageSelf."?p=".($page - 1)."'>上一頁</a>"; 30 } 31 if($totalPage > $showPage){ //當總頁數大於顯示頁數時 32 if($page > $pageOffset + 1){ //噹噹前頁大於頁碼偏移量+1時,也就是當頁碼爲4時 開始頁碼1替換爲... 33 $pageBanner .= "..."; 34 } 35 if($page > $pageOffset){ //噹噹前頁大於頁碼偏移量時 開始頁碼變爲當前頁-偏移頁碼 36 $start = $page - $pageOffset; 37 $end = $totalPage > $page + $pageOffset ? $page + $pageOffset : $totalPage; 38 //若是當前頁數+偏移量大於總頁數 那麼$end爲總頁數 39 }else{ 40 $start = 1; 41 $end = $totalPage > $showPage ? $showPage : $totalPage; 42 } 43 if($page + $pageOffset > $totalPage){ 44 $start = $start - ($page + $pageOffset - $end); 45 } 46 } 47 for($i = $start ; $i <= $end ; $i++){ //循環出頁碼 48 if($i == $page){ 49 $pageBanner .= "<span>".$i."</span>"; 50 }else{ 51 $pageBanner .= "<a href='".$pageSelf."?p=".$i."'>".$i."</a>"; 52 } 53 54 } 55 if($totalPage > $showPage && $totalPage > $page + $pageOffset){ //當總頁數大於頁碼顯示頁數時 且總頁數大於當前頁+偏移量 56 $pageBanner .= "..."; 57 } 58 if($page < $totalPage){ 59 $pageBanner .= "<a href='".$pageSelf."?p=".($page + 1)."'>下一頁</a>"; 60 $pageBanner .= "<a href='".$pageSelf."?p=".$totalPage."'>尾頁</a>"; 61 } 62 echo $pageBanner; 63 } 64 65 ?> 66 <!DOCTYPE html> 67 <html lang="en"> 68 <head> 69 <meta charset="UTF-8"> 70 <title>11</title> 71 <style type="text/css"> 72 *{margin: 0;padding: 0;} 73 .div1{width: 400px;padding: 5px;border: 1px solid red;text-align: center;} 74 .div1 a{margin-left: 5px;color: #000;text-decoration: none;color: red;} 75 .div1 span{margin-left: 5px;text-decoration: underline;} 76 </style> 77 </head> 78 <body> 79 <div class="div1"> 80 <?php pageBar("page",2); ?> 81 </div> 82 </body> 83 </html>
這裏注意第7行的$pageSize須要與下面函數調用傳入參數相同
裏面只包含a元素和span標籤
span表明當前頁的頁碼
因此直接能夠在html代碼裏面套個div再去直接修改裏面的樣式