首页 > 开发 > PHP > 正文

求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."页]&nbsp;&nbsp;[第".$page."页]&nbsp;&nbsp;";

    //首页和上页的链接
    if( $totalnum>1 && $page>1)
    {
    $prevpage=$page-1;
    $out .= " <a href=$php_self?page=1>[首页]</a>&nbsp;&nbsp;";
    $out .= " <a href=$php_self?page=$prevpage >[上页]</a>&nbsp;&nbsp;";
    }

    //下页和末页的链接
    if( $page>=1 && $page<$maxpage)
    {
    $nextpage= $page+1;
    $out .= " <a href=$php_self?page=$nextpage >[下页]</a>&nbsp;&nbsp;";
    $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>第&nbsp;";
    $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>&nbsp;&nbsp;<<&nbsp;&nbsp;";
    //for($t=1;$t<=$maxpage;$t++)
    for($t=$start;$t<=$end;$t++)
    {
    $out .= ($page==$t) ? "<font color='red'><b>".$t."</b></font>&nbsp;&nbsp;" : "<a href='?page=$t'>$t</a>&nbsp;&nbsp;";
    }
    if($page<>$maxpage)
    $out .= ">>&nbsp;&nbsp;<a href='?page=$maxpage' alt='末页'>$maxpage</a>";
    $out .= "&nbsp;页</div>";
    echo $out;
    }
    break;

    //select下拉框直接跳转
    case "3":
    {
    $out = "<div align=center>";
    $out .= "第&nbsp;<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>&nbsp;页";
    $out .= "</div>";
    echo $out;
    }
    break;
    default:
    echo "";
    break;
    }

    ?>
    </body>
    </html>
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表