一个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访问查询mysql数据的三种方法
Oct 09 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
php中定时计划任务的实现原理
Jan 08 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
php中bind_param()函数用法分析
Mar 28 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
PHP操作Postgresql封装类与应用完整实例
Apr 24 PHP
PHP按一定比例压缩图片的方法
Oct 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
浅析javascript 定时器
2014/12/23 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
浅谈python字符串方法的简单使用
2016/07/18 Python
python绘制直线的方法
2018/06/30 Python
惠普香港官方商店:HP香港
2019/04/30 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
致标枪运动员广播稿
2014/02/06 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
分享python函数常见关键字
2022/04/26 Python
mysqldump进行数据备份详解
2022/07/15 MySQL