一个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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
php批量删除数据
Jan 18 PHP
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
destoon实现首页显示供应、企业、资讯条数的方法
Jul 15 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
php简单获取复选框值的方法
May 11 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 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通用防注入程序 推荐
2011/02/26 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
python生成器generator用法实例分析
2015/06/04 Python
Python正则捕获操作示例
2017/08/19 Python
python实现简单加密解密机制
2019/03/19 Python
python 进程的几种创建方式详解
2019/08/29 Python
tensorflow的计算图总结
2020/01/12 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
一份比较全的PHP面试题
2016/07/29 面试题
商业计算机应用专业自荐书
2014/06/09 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis
Elasticsearch 基本查询和组合查询
2022/04/19 Python