一个odbc连mssql分页的类


Posted in PHP onOctober 09, 2006

<!--二泉.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();
?>

PHP 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
PHP静态类
Nov 25 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
解析PHP 5.5 新特性
Jul 02 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
Aug 07 PHP
PHP的curl函数的用法总结
Feb 14 PHP
浅谈PHP匿名函数和闭包
Mar 08 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
拼音码表的生成
Oct 09 #PHP
用PHP和MySQL保存和输出图片
Oct 09 #PHP
PHP生成带有雪花背景的验证码
Oct 09 #PHP
一个可查询所有表的“通用”查询分页类
Oct 09 #PHP
Get或Post提交值的非法数据处理
Oct 09 #PHP
用Socket发送电子邮件
Oct 09 #PHP
编写自己的php扩展函数
Oct 09 #PHP
You might like
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
python进阶教程之异常处理
2014/08/30 Python
深入理解python try异常处理机制
2016/06/01 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
pandas DataFrame运算的实现
2020/06/14 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
保安员岗位职责
2013/11/17 职场文书
财务会计人员求职的自我评价
2014/01/13 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
升学宴答谢词
2015/01/05 职场文书
试用期自我评价范文
2015/03/10 职场文书
撤诉申请怎么写
2015/05/19 职场文书
python APScheduler执行定时任务介绍
2022/04/19 Python