WEB开发网
开发学院WEB开发PHP 一个odbc连mssql分页的类 阅读

一个odbc连mssql分页的类

 2002-04-09 16:36:48 来源:WEB开发网   
核心提示:<!--二泉.net --><?class Pages{var $cn;//连接数据库游标var $d;//连接数据表的游标var $result;//结果var $dsn;//dsn源var $user;//用户名var $pass;//密码var $total;//记录总数var $pages;/
<!--二泉.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();
?>

Tags:一个 odbc mssql

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接