用PHP和SQL Sever實現分頁顯示

來源:互聯網
上載者:User
我們在瀏覽網頁時,經常看到分頁顯示的頁面。如果想把大量資料提供給瀏覽者,分頁顯示是個非常實用的方法。在下面的文章中,我們將介紹如何用PHP和MS SQL Server實現對資料庫中紀錄的分頁顯示。

    在本例中,我們用mssql_num_rows()函數得到當前查詢的記錄數,結合頁面大小SgPageSize,得到目前記錄集要顯示的頁面數,為分頁顯示打下了基礎。mssql_data_seek()函數是分頁顯示的關鍵函數,該函數的第二個參數標示當前紀錄的位移量,根據這個位移量就可以找到要顯示的頁面。

  分頁顯示來源程式:

<br><html>

<head>

<title>PHP分頁</title>

</head>

<body>

<?

//為了便於理解和更快地應用到工作中去,我們以MS SQL Server的NorthWind資料庫Customers表為例。

$gPageSize= 10; //每頁顯示的記錄數

$hostname = "localhost"; //MSSQL Server

$dbuser = "sa"; //使用者名稱

$dbpasswd = "1111111"; //密碼

//串連資料庫

$id = mssql_connect($hostname,$dbuser,$dbpasswd) or die("無法串連資料庫伺服器!");

//選擇資料庫,為了方便,這裡以MSSQL Server的NorthWind資料庫為例

$db = mssql_select_db("northwind",$id) or die("無法串連資料庫!");

//以Customers表為例,構建查詢字串

$query = "select * from Customers";

//執行查詢語句

$rresult = mssql_query($query) or die("無法執行SQL:$query");

//$page變數標示當前顯示的頁

if(!isset($page)) $page=1;

if($page==0) $page=1;

//得到當前查詢到的紀錄數 $nNumRows

if(($nNumRows= mssql_num_rows($rresult))<=0)

{

echo "<p align=center>沒有紀錄";

exit;

};

//得到最大頁碼數MaxPage

$MaxPage = (int)ceil($nNumRows/$gPageSize);

if((int)$page > $MaxPage)

$page=$maxPage;

?>

<table align="center" width="80%" border=0> <tr><td><? echo "<font size=2>第
$page 頁,共 $MaxPage 頁</font>";?></td><td></td></tr></table>

<table align="center" width="80%" border="1" cellspacing="0" cellpadding="4" bordercolorlight="#CC9966" bgcolor="#00F2EE" bordercolordark="#FFFFFF" class="LZH">

<tr bgcolor="#F7F2ff" style="font-size:14.8px;font-weight:bold">

<?

//顯示表格頭

for($iCnt = 0; $iCnt < mssql_num_fields($rresult); $iCnt++)

{

echo "<td>".mssql_field_name($rresult,$iCnt)."</td>" ;

}

?>

</tr>

<?

//根據位移量($page - 1)*$gPageSize,運用mssql_data_seek函數得到要顯示的頁面

if( mssql_data_seek($rresult,($page-1)*$gPageSize) )

{

$i=0;

//迴圈顯示當前紀錄集

for($i;$i<$gPageSize;$i++)

{

echo "<tr style=/"font-size:12px/">";

//得到當前紀錄,填充到數組$arr;

$arr= mssql_fetch_row($rresult);

if($arr)

{

//迴圈顯示當前紀錄的所有欄位值

for($nOffSet = 0;$nOffSet < count($arr);$nOffSet++)

{

echo "<td>".$arr[$nOffSet]."</td>";

}

}

echo "</tr>";

}

}

?>

</table>

<br>

<hr size=1 width=80%>

<div align=center style="font-size:12px">

<?

//首頁和上一頁的連結

if( $nNumRows>1 && $page>1)

{

$prevPage=$page-1;

echo " <a href=$PHP_SELF?page=1>首頁</a> ";

echo " <a href=$PHP_SELF?page=$prevPage >上一頁</a> ";

}

//下一頁和末頁的連結

if( $page>=1 && $page<$MaxPage)

{

$nextPage= $page+1;

echo " <a href=$PHP_SELF?page=$nextPage >下一頁</a> ";

echo " <a href=$PHP_SELF?page=$MaxPage >末頁</a> ";

}

?>

</div>

</body>

</html>

  
把上述指令碼程式進行一些修改,你就可以建立自己的伺服器端分頁顯示的指令碼程式了。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.