一个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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
php实现URL加密解密的方法
Nov 17 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
php实现socket推送技术的示例
Dec 20 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
Session保存到数据库的php类分享
2011/10/24 PHP
试用php中oci8扩展
2015/06/18 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
浅析JS运动
2015/12/28 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
python实现简易云音乐播放器
2018/01/04 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
乡镇群众路线专项整治方案
2014/11/03 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
如何使用pdb进行Python调试
2021/06/30 Python
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers