一个odbc连mssql分页的类

5年以前  |  阅读数:231 次  |  编程语言:PHP 

<?
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."
";
if($i==$pg->getOnepage()){//跳出循环
break;
}
$i++;
}
echo$pg->getFanye();
?>

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
贪吃蛇
文件下载
获取IMEI
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例