蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[php]php加access使用com函数进行分页代码

个人测试有效。
[code]
<?php
/*
php链接access并分页示例,本例没有使用ODBC数据源,所以不用在服务器
上建立一个系统DSN,本例没有使用ADODB类,所以不用下载相关文件,也不
用在php.ini中进行相关的设置。
相关资料参考http://www.myvapor.com/web/index.asp
程序制作amu
以下只是做出基本例子,并没有对程序进行完善和优化。
*/
$scriptname = split('[/]',$_SERVER['SCRIPT_NAME']);
$filename = end($scriptname);//得到本页名称

$MM_Conn_STRING="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("abc.mdb") ." ;DefaultDir=". realpath(".");//abc.mdb为数据库的相对路径
$Conn=new COM("ADODB.Connection");
$RS =new COM("ADODB.RecordSet");//数据集
$Conn->open($MM_Conn_STRING);//链接打开数据源
$query="select * from notes";
$RS->open($query,$Conn,1,1);//执行语句,返回记录集
$pagesize=$RS->Pagesize=5;//设置每页显示条数

if($RS->PageCount<>0){//防止数据库为空
        if(!empty($_GET['page'])){
                if($_GET['page']<=0){
                        $RS->AbsolutePage=1;
                        $nowpage=1;
                        }elseif($_GET['page']>$RS->PageCount){
                        $RS->AbsolutePage=$RS->PageCount;
                        $nowpage=$RS->PageCount;
                        }else{
                        $RS->AbsolutePage=$_GET['page'];
                        $nowpage=$_GET['page'];
                        }
                }else{
                $RS->AbsolutePage=1;
                $nowpage=1;
        }
}else{
$nowpage = 1;
$pagesize = 0;
}

        echo "当前显示第".$nowpage."页 ";
        echo "每页".$pagesize.'条 ';
        echo "共有".$RS->RecordCount."条记录 ";
        echo "共有".$RS->PageCount."页<br> ";

echo "<table border=\"1\" width=\"200\" cellpadding=\"1\" cellspacing=\"1\">";
echo "<tr>";
for($i=0;$i<$RS->fields->Count;$i++)
{
        echo "<td>".$RS->fields[$i]->Name."</td>";//遍历字段名
}
echo "</tr>";
for ($m=1; $m<=$pagesize; $m++)//按照每页显示条数的设定进行循环
        {
        if (!$RS->EOF){//防止达到记录集尾产生错误
        echo "<tr>";
        for ($x=0; $x<$RS->fields->Count;$x++){
        echo "<td>".$RS->fields[$x]->value."</td>";
        }
        //也可以使用下面的代码显示数据库内容
        //echo "<td>".$RS->fields["n_id"]->value."</td>";
        //echo "<td>".$RS->fields["n_name"]->value."</td>";
        //echo "<td>".$RS->fields["n_num"]->value."</td>";
        echo"</tr>";
        $RS->MoveNext();
        }
}
if($RS->PageCount==0){//防止数据库为空
        echo "<tr><td colspan=\"3\">没有数据</td></tr>";
}
echo "</table><br>";
if($RS->PageCount<>0){//防止数据库为空
        echo "<a href=\"$filename?page=1\">首页</a> ";
        if (!($nowpage<=1)){
                echo "<a href=\"$filename?page=".($nowpage-1)."\">上一页</a> ";
        }
        if (!($nowpage>=$RS->PageCount)){
                echo "<a href=\"$filename?page=".($nowpage+1)."\">下一页</a> ";
        }
        echo "<a href=\"$filename?page=".$RS->PageCount."\">尾页</a> ";
}
//释放资源
$Conn->Close();
$RS=NULL;
$Conn =NULL;
?>
[/code]




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com