一个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入门教程 精简版
Dec 13 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
php 定界符格式引起的错误
May 24 PHP
PHP语言中global和$GLOBALS[]的分析 之二
Feb 02 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP底层运行机制与工作原理详解
Jul 31 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
杏林同学录(七)
2006/10/09 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
动态加载js的几种方法
2006/10/23 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
酒店管理专业毕业生推荐信
2013/11/10 职场文书
商场促销活动方案
2014/02/08 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2015年服务员工作总结
2015/04/08 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
导游词之日本富士山
2020/01/06 职场文书