分页|显示
我们在浏览网页时,经常看到分页显示的页面。如果想把大量数据提供给浏览者,分页显示是个非常实用的方法。在下面的文章中,我们将介绍如何用PHP和MS SQL Server实现对数据库中纪录的分页显示。
在本例中,我们用mssql_num_rows()函数得到当前查询的记录数,结合页面大小SgPageSize,得到当前记录集要显示的页面数,为分页显示打下了基础。mssql_data_seek()函数是分页显示的关键函数,该函数的第二个参数标示当前纪录的偏移量,根据这个偏移量就可以找到要显示的页面。
分页显示源程序:
PHP分页
//为了便于理解和更快地应用到工作中去,我们以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))
{
echo "
没有纪录";
exit;
};
//得到最大页码数MaxPage
$MaxPage = (int)ceil($nNumRows/$gPageSize);
if((int)$page > $MaxPage)
$page=$maxPage;
?>
echo "第 $page 页,共 $MaxPage 页";?> |
|
//显示表格头
for($iCnt = 0; $iCnt
{
echo "".mssql_field_name($rresult,$iCnt)." | " ;
}
?>
//根据偏移量($page - 1)*$gPageSize,运用mssql_data_seek函数得到要显示的页面
if( mssql_data_seek($rresult,($page-1)*$gPageSize) )
{
$i=0;
//循环显示当前纪录集
for($i;$i
{
echo "";
//得到当前纪录,填充到数组$arr;
$arr= mssql_fetch_row($rresult);
if($arr)
{
//循环显示当前纪录的所有字段值
for($nOffSet = 0;$nOffSet
{
echo "".$arr[$nOffSet]." | ";
}
}
echo "
";
}
}
?>
//首页和上一页的链接
if( $nNumRows>1 && $page>1)
{
$prevPage=$page-1;
echo "
首页 ";
echo "
上一页 ";
}
//下一页和末页的链接
if( $page>=1 && $page
{
$nextPage= $page+1;
echo "
下一页 ";
echo "
末页 ";
}
?>
把上述脚本程序进行一些修改,你就可以建立自己的服务器端分页显示的脚本程序了。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn