基于ODBC的PHP SqlServer分页类实例
一个PHP使用odbc连接mssql的分页类,可直接输出分页结果,可 控制每页显示多少条记录,类中定义和设置功能都挺多,如果你的PHP连接的是MS SQLSERVER,在分页时候或许可以尝试下本代码:
<?
//PHP基于DSN的数据库分页
class Pages{
var $cn;//数据库游标
var $d;//数据表的游标
var $result;
var $dsn;//dsn源
var $user;//DSN用户名
var $pass;//DSN密码
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;
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 article");//表求总数,注意,实际用这里需要改成你自己的表
$pg->getList("select xs_name from article 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();
?>一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
大家评论
站长推荐
