標題:
8-3 分頁瀏覽(8-3-1 分頁基礎)
[打印本頁]
作者:
小誌
時間:
2011-4-20 10:48
標題:
8-3 分頁瀏覽(8-3-1 分頁基礎)
8-3 分頁瀏覽
當我們資料筆數太多,若要一次將全部資料送交瀏覽器中來閱讀,不僅造成瀏覽器解譯時的沉重負擔,資料下載的時間也會拖的很長,因此,當資料量大時,將資料分成多次提取來閱讀是個相當不錯的做法。
8-3-1 分頁基礎
「mysql_num_rows()」函數可用來獲知「mysql_quary()」函數中的資料記錄總筆數,其回傳值為一整數值,但筆者必須提醒您,利用「mysql_num_rows()」函數來獲知「mysql_quary()」函數中的資料記錄總筆數時,「mysql_num_rows()」函數必須讀全部記錄資料來計算筆數,所以比較消耗系統資源(筆者通常以SQL指令敘述來取得資料總筆數,而非以「mysql_num_rows()」函數來取得總筆數)。
例如:
//取得資料錄數量
$rowsnum=mysql_num_rows($datalist);
//列印總筆數
echo "資料總筆數 $rowsnum";
複製代碼
作者:
小誌
時間:
2011-4-20 10:51
得知資料的總筆數後,要將資料錄分頁顯示之前,必須決定每一頁要有多少數量的資料記錄,而全部的資料記錄將要分成多少頁,例如下例中,我們將每10筆資料為一單位分頁顯示:
//取得欄位數量
$fieldnum=mysql_num_fields($datalist);
//取得資料錄數量
$rowsnum=mysql_num_rows($datalist);
//計算總共有多少分頁
if (($rowsnum / 10) >intval($rowsnum / 10))
{
$TotalPage=intval($rowsnum / 10)+1;
}
else
{
$TotalPage=intval($rowsnum / 10);
}
複製代碼
先利用「mysql_num_rows()」函數取得總資料筆數,接著計算分頁的總頁數TotalPage,若資料錄數量無法整除,也就是不滿一頁的剩餘資料錄也要算一頁,例如:利用「mysql_num_rows()」函數告訴我們共讀取「studentlist(通訊錄)」資料表中466筆資料,我們設定顯示每頁10筆資料,則總分頁為「47」,46個滿頁加上一個只有6筆資料錄的分頁。
[attach]5653[/attach]
圖8-24 範例ex08_21.php。
ex08_21.php(節錄)
<?
$conn = mysql_connect("localhost", "root", "12345a");
if(@mysql_select_db("STUDENTS", $conn))
{
//指定提取資料的校對字元表
mysql_query("set character set big5");
//資料庫存在,建立SQL命令字串
$SQL="SELECT * FROM studentlist";
//將回傳結果存放於變數中
$datalist=mysql_query($SQL);
//取得欄位數量
$fieldnum=mysql_num_fields($datalist);
//取得資料錄數量
$rowsnum=mysql_num_rows($datalist);
//計算總共有多少分頁
if (($rowsnum / 10) >intval($rowsnum / 10))
{
$TotalPage=intval($rowsnum / 10)+1;
}
else
{
$TotalPage=intval($rowsnum / 10);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>範例ex08_21</title>
</head><body>
<?="共$rowsnum 筆資料;共$TotalPage 張分頁";?>
<center><table border=1 width=100%>
//…略
複製代碼
作者:
pix756
時間:
2012-8-14 17:09
小誌大大您好,
分頁的這一段我思考好了久。
if (($rowsnum / 10) >intval($rowsnum / 10))
{
$TotalPage=intval($rowsnum / 10)+1;
}
else
{
$TotalPage=intval($rowsnum / 10);
}
其中的 if (($rowsnum / 10) >intval($rowsnum / 10))
這一段我一直不了解。
想請小誌大大為我解惑一下。
在此先謝謝您了。:)
作者:
小誌
時間:
2012-8-15 15:19
比對是否有未滿頁的資料錄
例如10筆1頁,你思考一下,那78筆算幾頁?
intval
(PHP3 , PHP4)
intval --- 取得變數的整數值
語法 : int intval(mixed var, int [base] );
說明 :
傳回參數var的整數值,使用指定的base做為轉換的基底(預設值為10),var可以是任何的型態,但在陣列或物件上不能使用此函式。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)