您好,欢迎访问读文库

上传文档赚钱

当前位置:首页 > 语言 > PHP语言 > php分页类

php分页类

  • 小蚂蚁
  • 0 次阅读
  • 0 次下载
  • 2021-03-18 20:25:15
二扫码支付 微信
二扫码支付 支付宝

还剩... 页未读,继续阅读

免费阅读已结束,点击付费阅读剩下 ...

¥ 0 元,已有0人购买

免费阅读

阅读已结束,您可以下载文档离线阅读

¥ 0 元,已有0人下载

免费下载
文档简介:

接合smarty模板和数据库操作类的php分页类,传入sql语句,传出smarty数组分类:smarty模板2009.7.3011:45作者:xinsui08|评论:0|阅读:0*pleasemailmewhenyoufinderrors!*///包含常用的数据库操作//include'db.class.php';//包含smarty数据库操作类库//includesmarty/libs/Smarty.class.php;//当然也可以包含在上级目录中//-----------------------------------------------------------classPageSmarty{//类传入var$db;//参数被传入以便数据库操作var$tpl;//参数传入使用模板技术var$sql;//查询的数据操作//分页相关var$url;var$pageSize=20;//可以设置var$totalNumber=-1;var$page_Number=-1;var$pager_PageID=-1;var$pager_links=;/***-------------------------------------*/functionPageSmarty($db,$tpl,$sql,$url=){//建议传递url变量,能更好的控制叶面流转,提高可移植性//相应的smarty设置//这里有个相对路径问题.载入包含语句时候是相对于此目录//当被上级目录包含,下面的路径设置问题针对于上级目录//当路径有问题时,可使用类似$page->tpl->template设置覆盖$this->tpl=$tpl;$this->tpl->template_dir=libs/templates/;$this->tpl->compile_dir=libs/templates_c/;$this->tpl->config_dir=libs/configs/;$this->tpl->cache_dir=libs/cache/;$this->tpl->left_delimiter='<{';$this->tpl->right_delimiter='}>';$this->sql=$sql;$this->db=$db;$this->url=$url;}/***------------------------------------*///设置当前的每页显示的数目,缺省的是20functionsetPageSize($pageSize){$this->pageSize=$pageSize;}/***------------------------------------*///得到记录总数functiongetTotalNumber(){$this->db->query_withresult($this->sql);$this->totalNumber=$this->db->db_num_rows();return$this->totalNumber;}/***------------------------------------*///得到总页数functiongetPageNumber(){$this->page_Number=ceil($this->totalNumber/$this->pageSize);return$this->page_Number;}/***------------------------------------*///把结果集存到SMARTY可以用的数组中//注意选择的范围functionmakeList(){if($this->totalNumber<=$this->pageSize){//如果数据的记录少于叶面数目,全部显示使用此种模式for($i=0;$i<=$this->totalNumber;$i){$this->db->row=mysql_fetch_array($this->db->result);$data[]=$this->db->row;}//正常进行模式,实现正序排列}else{for($i=($this->pager_PageID-1)*$this->pageSize;$i<($this->pager_PageID)*$this->pageSize;$i){//如果数据显示超出总数范围-->停止!主要考虑最后一页if($i>=$this->totalNumber){break;}$this->db->db_data_seek($this->db->result,$i);$this->db->row=mysql_fetch_array($this->db->result);//取得的数据用smarty注册到显示叶面处理$data[]=$this->db->row;}}return$data;}/***------------------------------------*///从get参数得到当前的页码functiongetCurPage(){if(isset($_GET['pager_PageID'])&&!empty($_GET['pager_PageID'])){$this->pager_PageID=intval($_GET['pager_PageID']);}else{//如果是第一次访问,则设定当前页为第一页$this->pager_PageID=1;}return$this->pager_PageID;}/***------------------------------------*///制造需要显示的页码列表functionmakePageList(){//防止错误提交if($this->pager_PageID<=0)$this->pager_PageID=1;if($this->pager_PageID>=$this->page_Number)$this->pager_PageID=$this->page_Number;//如果是第一页if(1==$this->pager_PageID){if($this->page_Number>1){$this->pager_Links=url.?pager_PageID=2>下一页  url.?pager_PageID=.$this->page_Number.>尾页;}else{$this->pager_Links=尾页;}}//如果是最后一页elseif($this->page_Number==$this->pager_PageID){$this->pager_Links=url.?pager_PageID=1>首页  url.?pager_PageID=.($this->pager_PageID-1).>上一页;}//通用中间情况else{$this->pager_Links=url.?pager_PageID=.($this->pager_PageID-1).>上一页  url.?pager_PageID=.($this->pager_PageID1).>下一页;}return$this->pager_Links;}/***------------------------------------*///执行相应操作,传递一些可能使用的变量,具体的变量传递可以在控制层使用functionexec($pageto){$this->tpl->assign(curPage,$this->getCurpage());//当前页码$this->tpl->assign(totalNumber,$this->getTotalNumber());//记录总数$this->tpl->assign(pageNumber,$this->getPageNumber());//总页数$this->tpl->assign(pageLinks,$this->makePageList());//页码导航$this->tpl->assign(list,$this->makeList());//具体数据$this->tpl->display($pageto);//调用模板相应叶面return$this;}/***-----------------------------------/*使用范例////////////////////////////include'config.php';requirelibs/page.smarty.class.php;$db=newDB(HOST,DB_USER,DB_PASSWORD,DB_DATABASE);$conn=$db->conn();$tpl=newSmarty();//可以在控制层具体设置传递参数$tpl->assign(title,这是lycy);$tpl->assign(content,我要显示lycy);///////////////////////////////////////$sql=select*fromguest_main;$url=test.php;$page=newPageSmarty($db,$tpl,$sql,$url);$page->setPageSize(5);//构造一个数据库分页类并和smarty接合,需要传入四个个参数//传递模板叶面$page->exec(test.html);****************************************//模板页<{$title}>someContent=<{$content}>
totalPage=<{$totalNumber}>
pageNumber=<{$pageNumber}>
curPage=<{$curPage}>
<{$pageLinks}>
<{sectionname=nloop=$list}><{$list[n].guest_title}>
<{/section}>------------------------------------*/}?>

小蚂蚁
小蚂蚁
  • 126314

    文档
  • 10.12

    金币
Ta的主页 发私信

126314篇文档

相关搜索

php 分页

评论

发表评论
< /5 > 免费下载 ¥ 0 元
Copyright © 读文库 All Rights Reserved. 皖ICP备18020814号-3
×
保存成功