PHP+Mysql 實現資料分頁顯示
阿新 • • 發佈:2018-12-24
- 獲取結果集中的記錄數可以在SELECT語句中使用COUNT()函式獲取結果集中的記錄數量
- 設定每頁顯示記錄的數量假定使用變數
$PageSize
來儲存每頁顯示記錄的數量,它的值由 使用者根據需要自行設定,可以直接通過賦值語句來實現。 - 獲取總頁面數量可以通過
$RecordCount
和$PageSize
兩個資料計算得到總頁面數量$PageCount
, - 如何顯示第n 頁中的記錄雖然使用 PageSize屬性可以控制每頁顯示的記錄數,但是要 顯示那些記錄呢?可以在SELECT語句中使用LIMIT子句指定查詢記錄的範圍, 其 使用方法如下: SELECT * FROM 表名 LIMIT起始位置, 顯示記錄數量例如,要獲取第
$Page
SELECT * FROM 表名LIMIT ($Page- 1) * $ PageSize, $ PageSize
- 如何通知指令碼要顯示的頁碼可以通過傳遞引數的方式通知指令碼程式顯示的頁碼。假定分頁顯記錄的指令碼為 viewPage. php,傳遞引數的連結如下:
http:// localhost/ viewPage. php? page= 2
引數page用來指定當前的頁碼。在viewPage. php中,使用下面的語句讀取引數:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Document</title>
</head>
<body>
<?php
header("content-type:text/html;charset=utf-8");
//獲取當前頁碼
$page=$_GET['page'];
if($page==0){
$page=1;
}
//設定每頁最大能顯示的數量
$pagesize=3;
//連線資料庫
$conn=mysql_connect("localhost","root","root");
mysql_select_db("test");
mysql_query("set names utf-8");
if(!$conn){
die("mysql_connect_failed".mysql_connect_error());
}
else
echo("connected succeed"."<br />");
//獲取結果集的記錄數
$row=mysql_fetch_row(mysql_query("select count(1) from clerk"));
$recordcount=$row[0];
//計算總頁數
if($recordcount==0)
$pagecount=0;
else if($recordcount<$pagesize ||$recordcount==$pagesize){
$pagecount=1;
//如果 記錄 總數 量小 於 每頁 顯示 的 記錄 數量, 則 只有 一頁
}
else if($recordcount%$pagesize==0){
$pagecount=$recordcount/$pagesize;
//如果 沒有 餘數, 則 頁數 等於 總 記錄 數量 除以 每頁 顯示 記錄 的 數量
}
else
$pagecount=(int)($recordcount/$pagesize)+1;
//取 記錄 總數 量 不能 整除 每頁 顯示 記錄 的 數量,
// 則 頁數 等於 總 記錄 數量 除以 每頁 顯示 記錄 數量 的 結果 取整 再加 1
echo("當前頁碼:".$page."/".$pagecount."<br />");
?>
<table width="449" border="1">
<tr>
<td>員工姓名</td>
<td>職務</td>
<td>薪水</td>
</tr>
<?php
//迴圈顯示當前頁面的記錄
header("content-type:text/html;charset=utf-8");
echo $page;
//$sql="select * from clerk limit" .($page-1)*$pagesize.",".$pagesize; //$page為當前頁碼
$sql=($page-1)*$pagesize;
$result=mysql_query("select * from clerk limit {$sql},{$pagesize}");
while($row=mysql_fetch_row($result))
{
echo("<tr />");
echo("<td>$row[0]</td>");
echo("<td>$row[2]</td>");
echo("<td>$row[3]</td>");
echo("<tr />");
}
mysql_close($conn);
//顯示分頁連結
if($page==1){
echo("第一頁");
}
else
echo("<a href=viewpage.php?page=1>第一頁</a>");
//設定上一頁連線
if($page==1){
echo("上一頁");
}
else
echo("<a href=viewpage.php?page=".($page-1).">上一頁</a>");
//設定下一頁連結
if($page==$pagecount){
echo("下一頁");
}
else
echo("<a href=viewpage.php?page=".($page+1).">下一頁</a>");
//設定最後一頁
if($page==$pagecount){
echo("最後一頁");
}
else
echo("<a href=viewpage.php?page=".$pagecount.">最後一頁</a>");
?>
</table>
</body>
</html>