求php的mssql翻页程序!
2024-05-04 22:54:34
供稿:网友
本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。php代码:--------------------------------------------------------------------------------
<html>
<head>
<title>php分页</title>
</head>
<body>
<?
//为了便于理解和更快地应用到工作中去,我们以ms sql server的northwind数据库customers表为例。
$pagesize= 4; //每页显示的记录数
$hostname = "localhost"; //mssql server
$dbuser = "sa"; //用户名
$dbpasswd = ""; //密码
//连接数据库
$conn = mssql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");
//选择数据库,为了方便,这里以mssql server的pubs数据库为例
$db = mssql_select_db("northwind",$conn) or die("无法连接数据库!");
//以customers表为例,构建查询字符串
$sql = "select * from customers";
//执行查询语句
$res = mssql_query($sql) or die("无法执行sql:$sql");
//$page变量标示当前显示的页
if(!isset($page)) $page=1;
if($page==0) $page=1;
//得到当前查询到的纪录数 $totalnum
$totalnum= mssql_num_rows($res);
if($totalnum<=0)
{
echo "<p align=center>没有纪录";
exit;
}
//得到最大页码数maxpage
$maxpage = (int)ceil($totalnum/$pagesize);
if((int)$page > $maxpage)
$page=$maxpage;
?>
<table align="center" width="90%" border="1" cellspacing="2" cellpadding="2">
<tr bgcolor="#f7f2ff">
<?
//显示表格头
for($i = 0; $i < mssql_num_fields($res); $i++)
{
echo "<td>".mssql_field_name($res,$i)."</td>" ;
}
?>
</tr>
<?
//根据偏移量($page - 1)*$pagesize,运用mssql_data_seek函数得到要显示的页面
if( mssql_data_seek($res,($page-1)*$pagesize) )
{
$i=0;
//循环显示当前纪录集
for($i;$i<$pagesize;$i++){
echo "<tr>";
//得到当前纪录,填充到数组$row;
$row= mssql_fetch_row($res);
if($row)
{
//循环显示当前纪录的所有字段值
for($j = 0;$j < count($row);$j++)
{
echo "<td>".$row[$j]."</td>";
}
}
echo "</tr>";
}
}
?>
</table>
<br>
<hr size=1>
<?
$style = "2";
switch($style)
{
//格式: [首页] [上页] [下页] [末页]
case "1":
{
$out = "<div align=center>";
$out .= "[共".$maxpage."页] [第".$page."页] ";
//首页和上页的链接
if( $totalnum>1 && $page>1)
{
$prevpage=$page-1;
$out .= " <a href=$php_self?page=1>[首页]</a> ";
$out .= " <a href=$php_self?page=$prevpage >[上页]</a> ";
}
//下页和末页的链接
if( $page>=1 && $page<$maxpage)
{
$nextpage= $page+1;
$out .= " <a href=$php_self?page=$nextpage >[下页]</a> ";
$out .= " <a href=$php_self?page=$maxpage>[末页]</a>";
}
$out .= "</div>";
echo $out;
}
break;
//格式: 1 2 3 4 5
case "2":
{
$linknum = "4";//页面上显示连接的个数显示
$out = "<div align=center>第 ";
$start = ($page-round($linknum/2))>0 ? ($page-round($linknum/2)) : "1";
$end = ($page+round($linknum/2))<$maxpage ? ($page+round($linknum/2)) : $maxpage;
if($page<>1)
$out .= "<a href='?page=1' alt='首页'>1</a> << ";
//for($t=1;$t<=$maxpage;$t++)
for($t=$start;$t<=$end;$t++)
{
$out .= ($page==$t) ? "<font color='red'><b>".$t."</b></font> " : "<a href='?page=$t'>$t</a> ";
}
if($page<>$maxpage)
$out .= ">> <a href='?page=$maxpage' alt='末页'>$maxpage</a>";
$out .= " 页</div>";
echo $out;
}
break;
//select下拉框直接跳转
case "3":
{
$out = "<div align=center>";
$out .= "第 <select onchange=/"location='?page='+this.options[this.selectedindex].value/">";
for($i=1; $i<=$maxpage; $i++) {
$out .= "<option value='$i'".(($i==$page) ? ' selected' : '').">$i</option>";
}
$out .= "</select> 页";
$out .= "</div>";
echo $out;
}
break;
default:
echo "";
break;
}
?>
</body>
</html>