data/attachment/common/编程

编程

    今日:0| 主题:21
收藏本版
发表新帖

[php语言] 最新发布 一个odbc连mssql分页的类

[复制链接] [提交至百度]
夜风 发表于 2019-11-21 03:31:04
899 0

马上注册,下载资源,享用更多功能,让你轻松玩转网站

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. <!--二泉.net -->
  2. <?
  3. class Pages{
  4.     var $cn;        //连接数据库游标
  5.     var $d;            //连接数据表的游标
  6.     var $result;    //结果
  7.     var $dsn;        //dsn源
  8.     var $user;        //用户名   
  9.     var $pass;        //密码

  10.     var $total;        //记录总数
  11.     var $pages;        //总页数
  12.     var $onepage;    //每页条数
  13.     var $page;        //当前页
  14.     var $fre;        //上一页
  15.     var $net;        //下一页
  16.     var $i;            //控制每页显示

  17.     function getConnect($dsn,$user,$pass){
  18.         $this->cn=@odbc_connect($dsn,$user,$pass);
  19.         if(!$this->cn){
  20.             $error="连接数据库出错";
  21.             $this->getMess($error);
  22.         }
  23.     }

  24.     function getDo($sql){//从表中查询数据
  25.         $this->d=@odbc_do($this->cn,$sql);
  26.         if(!$this->d){
  27.             $error="查询时发生了小错误......";
  28.             $this->getMess($error);
  29.         }
  30.         return $this->d;
  31.     }

  32.     function getTotal($sql){
  33.         $this->sql=$sql;
  34.         $dT=$this->getDo($this->sql);        //求总数的游标
  35.         $this->total=odbc_result($dT,'total');//这里为何不能$this->d呢?
  36.         return $this->total;
  37.     }

  38.     function getList($sql,$onepage,$page){
  39.         $this->s=$sql;
  40.         $this->onepage=$onepage;
  41.         $this->page=$page;
  42.         $this->dList=$this->getDo($this->s);    //连接表的游标
  43.         $this->pages=ceil($this->total/$this->onepage);
  44.         if($this->pages==0)
  45.             $this->pages++; //不能取到第0页
  46.         if(!isset($this->page))
  47.             $this->page=1;
  48.         $this->fre = $this->page-1;                    //将显示的页数
  49.         $this->nxt = $this->page+1;
  50.         $this->nums=($this->page-1)*$this->onepage;
  51.         //if($this->nums!=0){
  52.         //    for($this->i=0;$this->i<$pg->getNums();odbc_fetch_row($this->dd),$this->i++);//同上
  53.         //}
  54.         //$this->i=0;//为何这部分不能封装?
  55.         return $this->dList;
  56.     }

  57.     function getFanye(){
  58.         $str="";
  59.         if($this->page!=1)
  60.             $str.="<a href=".$PHP_SELF."?page=1> 首页 </a><a href=".$PHP_SELF."?page=".$this->fre."> 前页 </a>";
  61.             else
  62.                 $str.="<font color=999999>首页 前页</font>";
  63.         if($this->page<$this->pages)
  64.             $str.="<a href=".$PHP_SELF."?page=".$this->nxt."> 后页 </a>";
  65.             else
  66.                 $str.="<font color=999999> 后页 </font>";
  67.         if($this->page!=$this->pages)
  68.             $str.="<a href=".$PHP_SELF."?page=".$this->pages."> 尾页 </a>";
  69.             else
  70.                 $str.="<font color=999999> 尾页 </font>";

  71.         $str.="共".$this->pages."页";
  72.         $str.="您正浏览第<font color=red>".$this->page."</font>页";
  73.         return $str;
  74.     }

  75.     function getNums(){
  76.         return $this->nums;
  77.     }

  78.     function getOnepage(){//每页实际条数
  79.         return $this->onepage;
  80.     }

  81.     function getI(){
  82.         return $this->i;
  83.     }

  84.     function getPage(){
  85.         return $this->page;
  86.     }

  87.     function getMess($error){//定制消息
  88.         echo"<center>$error</center>";
  89.         exit;
  90.     }
  91. }

  92. $pg=new Pages();
  93. $pg->getConnect("lei","sa","star");
  94. $pg->getTotal("select count(*) as total from xs");            //连学生表求总数
  95. $pg->getList("select xs_name from xs order by xs_id",8,$page);
  96. if($pg->getNums()!=0){
  97.     for($i=0;$i<$pg->getNums();odbc_fetch_row($pg->dList),$i++);//同上
  98. }
  99. $i=0;
  100. while(odbc_fetch_row($pg->dList)){
  101.     $name=odbc_result($pg->dList,"xs_name");
  102.     echo $name."<br>";
  103.     if($i==$pg->getOnepage()){//跳出循环
  104.         break;
  105.     }
  106.     $i++;
  107. }
  108. echo$pg->getFanye();
  109. ?>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐阅读

平台简介

六六下载网(666现在.cn),中国最大的电商设计师交流平台。最活跃的电商设计师学习交流分享社区。集原创作品+灵感图库+经验教程+设计专访+设计培训+社群活动为一体,全方位服务电商设计师。成立3年来,聚集20万电商设计师,定期线下设计沙龙,覆盖北京、上海、广州、杭州等城市计

QQ|Archiver|手机版|小黑屋|666下载网 ( 粤ICP备16097146号-5 )|网站地图  

Powered by 金易德.cn! X3.4  © 2014-2018 深圳市龙岗区金易徳贸易商行   增值电信业务经营许可证:粤B2-20140196

返回顶部 返回列表