一个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 相关文章推荐
mac下使用brew配置环境的步骤分享
May 23 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
PHP程序守护进程化实现方法详解
Jul 16 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/11/25 PHP
PHP中soap的用法实例
2014/10/24 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
Python import用法以及与from...import的区别
2015/05/28 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python游戏地图最短路径求解
2019/01/16 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
大学毕业生简单自荐信
2013/11/05 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
php双向队列实例讲解
2021/11/17 PHP