2013年6月25日 星期二

PHP 簡單分頁語法

php語法部分
<?php  
 //預設每頁筆數(依需求修改)
 $pageRow_records = 5;
 //預設頁數
 $num_pages = 1;
 //若已經有翻頁,將頁數更新
 if (isset($_GET['page'])) {
   $num_pages = $_GET['page'];
 }
 //本頁開始記錄筆數 = (頁數-1)*每頁記錄筆數
 $startRow_records = ($num_pages -1) * $pageRow_records;
 //未加限制顯示筆數的SQL敘述句
 $sql_query = "SELECT * FROM `demo`";
 //加上限制顯示筆數的SQL敘述句,由本頁開始記錄筆數開始,每頁顯示預設筆數
 $sql_query_limit = $sql_query." LIMIT ".$startRow_records.", ".$pageRow_records;
 //以加上限制顯示筆數的SQL敘述句查詢資料到 $result 中
 $result = mysql_query($sql_query_limit);
 //以未加上限制顯示筆數的SQL敘述句查詢資料到 $all_result 中
 $all_result = mysql_query($sql_query);
 //計算總筆數
 $total_records = mysql_num_rows($all_result);
 //計算總頁數=(總筆數/每頁筆數)後無條件進位。
 $total_pages = ceil($total_records/$pageRow_records);
?>
頁面切換介面一顯示 第一頁、上一頁、下一頁、最後頁 的連結選項
將下列程式碼貼在想顯示分頁連結的地方
<table border="0" align="center">
  <tr>
 <?php if ($num_pages > 1) { // 若不是第一頁則顯示 ?>
 <td><a href="<?php echo "{$_SERVER['PHP_SELF']}"; ?>?page=1"><img src="../gif/bt_skip_bk.gif" alt="最前一頁" width="24" height="24" border="0" /></a></td>
 <td><a href="<?php echo "{$_SERVER['PHP_SELF']}"; ?>?page=<?php echo $num_pages-1;?>"><img src="../gif/bt_rev.gif" alt="上一頁" width="24" height="24" border="0" /></a></td>
 <?php } ?>
 <?php if ($num_pages < $total_pages) { // 若不是最後一頁則顯示 ?>
 <td><a href="<?php echo "{$_SERVER['PHP_SELF']}"; ?>?page=<?php echo $num_pages+1;?>"><img src="../gif/bt_ff.gif" alt="下一頁" width="24" height="24" border="0" /></a></td>
 <td><a href="<?php echo "{$_SERVER['PHP_SELF']}"; ?>?page=<?php echo $total_pages;?>"><img src="../gif/bt_skip_sw.gif" alt="最後一頁" width="24" height="24" border="0" /></a></td>
 <?php } ?>
  </tr>
</table>
頁面切換介面二:顯示 << < 1 2 3 [4] 5 6 7 > >>  的連結選項
將下列程式碼貼在想顯示分頁連結的地方
<table border="0" align="center">
<tr><td>						
<?php
// 顯示的頁數範圍
$range = 3;
 
// 若果正在顯示第一頁,無需顯示「前一頁」連結
if ($num_pages > 1) {
	// 使用 << 連結回到第一頁
	echo " <a href={$_SERVER['PHP_SELF']}?page=1><<</a> ";
	// 前一頁的頁數
	$prevpage = $num_pages - 1;
	// 使用 < 連結回到前一頁
	echo " <a href={$_SERVER['PHP_SELF']}?page=".$prevpage."><</a> ";
} // end if
 
// 顯示當前分頁鄰近的分頁頁數
for ($x = (($num_pages - $range) - 1); $x < (($num_pages + $range) + 1); $x++) {
	// 如果這是一個正確的頁數...
	if (($x > 0) && ($x <= $total_pages)) {
		// 如果這一頁等於當前頁數...
		if ($x == $num_pages) {
			// 不使用連結, 但用高亮度顯示
			echo " [<b>".$x."</b>] ";
			// 如果這一頁不是當前頁數...
		} else {
			// 顯示連結
			echo " <a href=performance.php?page=".$x.">".$x."</a> ";
		} // end else
	} // end if
} // end for
 
// 如果不是最後一頁, 顯示跳往下一頁及最後一頁的連結
if ($num_pages != $total_pages) {
	// 下一頁的頁數
	$nextpage = $num_pages + 1;
	// 顯示跳往下一頁的連結
	echo " <a href={$_SERVER['PHP_SELF']}?page=".$nextpage.">></a> ";
	// 顯示跳往最後一頁的連結
	echo " <a href={$_SERVER['PHP_SELF']}?page=".$total_pages.">>></a> ";
} // end if
?>
</td></tr>
</table>