一个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 相关文章推荐
给php新手谈谈我的学习心得
Feb 25 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
php单链表实现代码分享
Jul 04 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
PHP array_push 数组函数
2009/12/26 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
python selenium xpath定位操作
2020/09/01 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
大学校庆策划书
2014/01/31 职场文书
三查三看党性分析材料
2014/02/18 职场文书
财务部绩效考核方案
2014/05/04 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
骨干教师个人总结
2015/02/11 职场文书
实习生个人总结范文
2015/02/28 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android