一个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实现网上点歌(二)
Oct 09 PHP
php 随机生成10位字符代码
Mar 26 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP 转义使用详解
Jul 15 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
浅谈php命令行用法
Feb 04 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
Python中防止sql注入的方法详解
2017/02/25 Python
Python3 中文文件读写方法
2018/01/23 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
乔迁宴答谢词
2014/01/21 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
分公司经理任命书
2014/06/05 职场文书
法定代表人资格证明书
2014/09/11 职场文书
出租房屋协议书
2014/09/14 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
python实现简易名片管理系统
2021/04/11 Python
Python制作动态字符画的源码
2021/08/04 Python