一个odbc连mssql分页的类 <!--二泉.net --> <? class Pages{ var $cn; //连接数据库游标 var $d; //连接数据表的游标 var $result; //结果 var $dsn; //dsn源 var $user; //用户名 var $pass; //密码 var $total; //记录总数 var $pages; //总页数 var $onepage; //每页条数 var $page; //当前页 var $fre; //上一页 var $net; //下一页 var $i; //控制每页显示 function getConnect($dsn,$user,$pass){ $this->cn=@odbc_connect($dsn,$user,$pass); if(!$this->cn){ $error="连接数据库出错"; $this->getMess($error); } } function getDo($sql){//从表中查询数据 $this->d=@odbc_do($this->cn,$sql); if(!$this->d){ $error="查询时发生了小错误......"; $this->getMess($error); } return $this->d; } function getTotal($sql){ $this->sql=$sql; $dT=$this->getDo($this->sql); //求总数的游标 $this->total=odbc_result($dT,'total');//这里为何不能$this->d呢? return $this->total; } function getList($sql,$onepage,$page){ $this->s=$sql; $this->onepage=$onepage; $this->page=$page; $this->dList=$this->getDo($this->s); //连接表的游标 $this->pages=ceil($this->total/$this->onepage); if($this->pages==0) $this->pages++; //不能取到第0页 if(!isset($this->page)) $this->page=1; $this->fre = $this->page-1; //将显示的页数 $this->nxt = $this->page+1; $this->nums=($this->page-1)*$this->onepage; //if($this->nums!=0){ // for($this->i=0;$this->i<$pg->getNums();odbc_fetch_row($this->dd),$this->i++);//同上 //} //$this->i=0;//为何这部分不能封装? return $this->dList; } function getFanye(){ $str=""; if($this->page!=1) $str.="<a href=".$PHP_SELF."?page=1> 首页 </a><a href=".$PHP_SELF."?page=".$this->fre."> 前页 </a>"; else $str.="<font color=999999>首页 前页</font>"; if($this->page<$this->pages) $str.="<a href=".$PHP_SELF."?page=".$this->nxt."> 后页 </a>"; else $str.="<font color=999999> 后页 </font>"; if($this->page!=$this->pages) $str.="<a href=".$PHP_SELF."?page=".$this->pages."> 尾页 </a>"; else $str.="<font color=999999> 尾页 </font>"; $str.="共".$this->pages."页"; $str.="您正浏览第<font color=red>".$this->page."</font>页"; return $str; } function getNums(){ return $this->nums; } function getOnepage(){//每页实际条数 return $this->onepage; } function getI(){ return $this->i; } function getPage(){ return $this->page; } function getMess($error){//定制消息 echo"<center>$error</center>"; exit; } } $pg=new Pages(); $pg->getConnect("lei","sa","star"); $pg->getTotal("select count(*) as total from xs"); //连学生表求总数 $pg->getList("select xs_name from xs order by xs_id",8,$page); if($pg->getNums()!=0){ for($i=0;$i<$pg->getNums();odbc_fetch_row($pg->dList),$i++);//同上 } $i=0; while(odbc_fetch_row($pg->dList)){ $name=odbc_result($pg->dList,"xs_name"); echo $name."<br>"; if($i==$pg->getOnepage()){//跳出循环 break; } $i++; } echo$pg->getFanye(); ?> phpfans.net收集整理 |