一个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 date函数参数详解
Nov 27 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
详解js异步文件加载器
Jan 24 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 PHP
PHP高并发和大流量解决方案整理
Mar 09 PHP
php 原生分页
Apr 01 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标签云的实现代码
2012/10/10 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php常用的工具开发整理
2019/09/26 PHP
类似框架的js代码
2006/11/09 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
深入探究node之Transform
2017/07/20 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python实现爬取图书封面
2018/07/05 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
Python OS模块实例详解
2019/04/15 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
咖啡店自主创业商业计划书
2014/01/22 职场文书
小学二年级学生评语
2014/04/21 职场文书
春节联欢会策划方案
2014/05/16 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
2015年班组长工作总结
2015/04/10 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers