• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

用PHP实现ODBC数据分页显示一例

发布: 2007-7-01 15:06 | 作者: admin | 来源: | 查看: 24次 | 进入软件测试论坛讨论

领测软件测试网 $pagesize = 2; //一页显示记录数

$con = odbc_connect("access_test","","",SQL_CUR_USE_ODBC) or die("无法连接ODBC数据源access_test"); //连接一个ODBC数据源
$sql = "select count(*) as total from test"; //取得记录总数SQL语句
$rst = odbc_exec($con,$sql) or die("$sql查询出错"); //执行取得记录总数SQL语句
$recordcount = odbc_result($rst,1); //取得记录总数,在这里也可以用$recordcount = odbc_result($rst,"total");
odbc_free_result($rst); //释放资源

$pagecount = bcdiv($recordcount+$pagesize-1,$pagesize,0); //算出总页数

if(!isset($page)) $page = 1; //如果没有指定显示页码,缺省为显示第一页
if($page<1) $page = 1; //如果页码比1小,则显示第一页
if($page>$pagecount) $page = $pagecount; //如果页码比总页数大,则显示最后一页

if($page>0){ //页码比0大,表示有数据
   echo @#>> 分页 @#;
   echo @#<a href="@# . $PHP_SELF . @#?page=1">首页</a> @#;
   if($page>1){
      echo @#<a href="@# . $PHP_SELF . @#?page=@#. ($page-1) . @#">前页</a> @#;
   }
   else{
      echo @#前页 @#;
   }
   if($page<$pagecount){
      echo @#<a href="@# . $PHP_SELF . @#?page=@#. ($page+1) . @#">后页</a> @#;
   }
   else{
      echo @#后页 @#;
   }
   echo @#<a href="@# . $PHP_SELF . @#?page=@# . $pagecount . @#">尾页</a> @#;
   echo @#页次: @# . $page . @#/@# . $pagecount . @#页 @#;
   echo $pagesize . @#条/页 @#;
   echo @#共@# . $recordcount . @#条 @#;
   
   $sql = "select * from test"; //取得数据SQL语句
   $rst = odbc_exec($con,$sql) or die("$sql查询出错"); //执行取得数据SQL语句
   
   $fieldcount = odbc_num_fields($rst); //取得字段总数
   
   echo @#<table border="1" cellspacing="0" cellpadding="0">@#;
   echo @#<tr>@#;
   for($i=1;$i<=$fieldcount;$i++){
      echo @#<th>@# . odbc_field_name($rst,$i) . @#</th>@#; //显示第$i个字段名
   }
   echo @#</tr>@#;
   $rowi = ($page-1)*$pagesize+1;
   for($i=0;$i<$pagesize;$i++){
      echo @#<tr>@#;
      if($rowi>$recordcount){
         for($j=0;$j<$fieldcount;$j++){
            echo @#<td>&nbsp;</td>@#;
         }
      }
      else{
         odbc_fetch_into($rst,$rowi,&$row);
         for($j=0;$j<$fieldcount;$j++){
            $field = $row[$j];
            if($field==@#@#) $field = @#&nbsp;@#;
            echo @#<td>@# . $field  . @#</td>@#;
         }
         $rowi = $rowi+1;
      }
      echo @#</tr>@#;
   }
   echo @#</table>@#;
   
   odbc_free_result($rst); //释放资源
}
else{
   echo "无数据";
}

odbc_close($con); //关闭连接并释放资源
?>


文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网