一个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 preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
解析php DOMElement 操作xml 文档的实现代码
May 10 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python内置函数的用法实例教程
2014/09/08 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
Python JSON编解码方式原理详解
2020/01/20 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
股东合作协议书
2014/04/14 职场文书
学校三节实施方案
2014/06/09 职场文书
工程部岗位职责范本
2015/04/11 职场文书
合同纠纷调解书
2015/05/20 职场文书
2016党校学习心得体会
2016/01/07 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript