一个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入门学习的几个不错的实例代码
Jul 13 PHP
php array_merge下进行数组合并的代码
Jul 22 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
解析link_mysql的php版
Jun 30 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php数组去除空值函数分享
Feb 02 PHP
PHP Echo字符串的连接格式
Mar 07 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 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
是否存在第一台收音机的说法
2021/03/01 无线电
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php array_walk() 数组函数
2011/07/12 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
python实现多人聊天室
2020/03/31 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Django 多环境配置详解
2019/05/14 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
离职证明标准格式
2014/09/15 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js