Page分页类学习,ThinkPHP实现分页功能_php实例_脚本
分类:计算机编程

前几篇文章介绍的职能达成都是基于ThinkPHP框架封装好的类举行落实的,所以此次和谐写三个分页类在框架中动用。

RT.

第意气风发在根目录建一个Tools文件夹,在Tools文件夹下建Page.class.php类文件,那样今后自定义的工具类都可放在Tools文件夹下。

Page分页类学习,ThinkPHP实现分页功能_php实例_脚本之家。续上面的篇章读取成效完毕,接下去落实小说列表的分页成效。TP已经贯彻了三个分页类Page.class.php,3.1版本早前的TP Page类坐落于ThinkPHP扩充文件夹下,目录地址为ThinkPHP/Library/Org/Util/Page.class.php,引进使用,利用TP的import方法,import('OQashqaiG.Util.Page'卡塔尔。然而3.2本子之后的ThinkPHP已经将Page.class.php文件移动到了ThinkPHP/Library/Org/Think/Page.class.php,同样,注明使用Page类的不二诀要也变了,产生$Page = new ThinkPage($count, ‘分页条数’卡塔尔;

此类封装有以下函数:获取央求地址,开头页,从哪一条突显,甘休页 从哪一条甘休,页码列表(首页超链接,上生龙活虎页,页码数字列表超链接,下后生可畏页,尾页,跳转),对于分页丰硕使用!

OK。接下来学习Page类的运用,以散文Article为例子,Article视图中有数量项id,title,title_alias八个数据项,分别存款和储蓄的是小说ID,小说标题,小说简要介绍。

下面是Page.class.php代码

1:实例化数据对象

"个记录", "prev"=>"上一页", "next"=>"下一页", "first"=>"首 页", "last"=>"尾 页"); private $listNum=8; //限制页码列表数目 /* * $total 总记录数 * $listRows 每页显示行数 */ public function __construct($total, $listRows=10, $pa=""){ $this->total=$total; //数据表中总记录数 $this->listRows=$listRows; //设置每页显示行数 $this->uri=$this->getUri; //请求地址 $this->page=!empty ? $_GET["page"] : 1; //当前页 $this->pageNum=ceil($this->total/$this->listRows); //总页数 $this->limit=$this->setLimit(); //限制每页长度 } private function setLimit(){ return "Limit ".*$this->listRows.", https://www.jb51.net/article/{$this->listRows}"; } //请求地址 private function getUri{ $url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?").$pa; $parse=parse_url; if(isset{ parse_str($parse['query'],$params); unset; $url=$parse['path'].'?'.http_build_query; } return $url; } function __get{ if return $this->limit; else return null; } //开始页,从哪一条显示 private function start(){ if return 0; else return *$this->listRows 1; } //从哪一条结束 private function end(){ return min($this->page*$this->listRows,$this->total); } //首页超链接 private function first(){ $html = ""; if $html.=''; else $html.="https://www.jb51.net/article/{$this->config["first"]}"; return $html; } //上一页 private function prev(){ $html = ""; if $html.=''; else $html.="https://www.jb51.net/article/{$this->config["prev"]}"; return $html; } //页码数字列表超链接 private function pageList(){ $linkPage=""; $inum=floor; for($i=$inum; $i>=1; $i--){ $page=$this->page-$i; if continue; $linkPage.="{$page}"; } $linkPage.="https://www.jb51.net/article/{$this->page}"; for($i=1; $i<=$inum; $i  ){ $page=$this->page $i; if($page<=$this->pageNum) $linkPage.="{$page}"; else break; } return $linkPage; } //下一页 private function next(){ $html = ""; if($this->page==$this->pageNum) $html.=''; else $html.="https://www.jb51.net/article/{$this->config["next"]}"; return $html; } //尾页 private function last(){ $html = ""; if($this->page==$this->pageNum) $html.=''; else $html.="https://www.jb51.net/article/{$this->config["last"]}"; return $html; } //跳转 private function goPage(){ return ''; } //页码列表 function fpage($display=array{ $html[0]="共有https://www.jb51.net/article/{$this->total}https://www.jb51.net/article/{$this->config["header"]}"; $html[1]="每页显示".-$this->start."条,本页https://www.jb51.net/article/{$this->start}条"; $html[2]="https://www.jb51.net/article/{$this->page}/https://www.jb51.net/article/{$this->pageNum}页"; $html[3]=$this->first(); $html[4]=$this->prev(); $html[5]=$this->pageList(); $html[6]=$this->next(); $html[7]=$this->last(); $html[8]=$this->goPage(); $fpage=''; foreach{ $fpage.=$html[$index]; } return $fpage; }}

//商品列表 function showlist(){ //实现分页效果 $goods = D; //① 获得数据的总记录条数 $total = $goods -> count from sw_goods; $per = 7; //每页显示7条记录 //②实例化分页类 $page_obj = new ToolsPage; //③自定义sql语句,获取每页信息 $sql = "select * from sw_goods order by goods_id desc ".$page_obj->limit; $info = $goods->query; //④获取页码列表 $pagelist = $page_obj->fpage; //分配 $this->assign; $this->assign; $this->display(); }
$article = M("Article");

如上正是本文的全部内容,希望对大家的学习抱有助于,也希望大家不吝指教脚本之家。

2:查询总记录数

$count = $article->count();//直接读取数据表中条项总数 //或者有查询条件 $count = $article->where(查询条件)->count();//查询满足查询条件的条目数 

3:实例化分页类

分页类在领头化的时候传出八个参数,三个是呈现条数的总数,叁个是每一趟抽取的条数。

$Page  = new ThinkPage($count, 10);

4:依照约束的条数,从数据库中读取相应数额的条数

如下,filed(卡塔尔(英语:State of Qatar)钦赐从数据库中抽出id,title,title_alias多个数据项,而且经过limit(卡塔尔国函数限定和记录抽出的条规,取完后将其赋给页面:

$list = $article->field('id,title,title_alias')->order('id')->limit($Page->firstRow.','.$Page->listRows)->select(); $this->assign('list',$list);

5:通过show(卡塔尔(قطر‎方法剖判$page内容并附值给模板变量,供模板调用:

$show  = $Page->show(); $this->assign('page',$show);

6:通过$this->display(卡塔尔调用模板显示;(display方法用于模板文件的渲染输出,show方准绳用于模板内容渲染输出,关于双方的差距:)

7:在模板中,通过<volist>标签显示内容

<volist name="list" id="list">    {$list["id"]}{$list["title"]}    {$list["title_alias"]}     <br/> </volist> {$page}

$list数组中存了对应页码中页面所必要体现的剧情,在那之中囊括id,title,title_alias。那四个内容。$page变量中贮存了换页的数组以至当前的页面数,两个结合就产生了翻页的功力。


本文由澳门新葡8455手机版发布于计算机编程,转载请注明出处:Page分页类学习,ThinkPHP实现分页功能_php实例_脚本

上一篇:ThinkPHP完毕轻巧登入功效_php实例_脚本之家,Dja 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • 应用程式开拓平台,Smobiler开采平台
    应用程式开拓平台,Smobiler开采平台
    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现电
  • NET开拓能源大全
    NET开拓能源大全
    目录 API 应用框架(ApplicationFrameworks) 应用模板(ApplicationTemplates) 人工智能(ArtificialIntelligence) 程序集处理(AssemblyManipulation) 资源(Assets) 认证和授
  • STM32就学笔记之C语言篇
    STM32就学笔记之C语言篇
    【unsigned】 1、rewind(FILE *卡塔尔(英语:State of Qatar):回到文件开头处 2、fprintf(), fscanf(), fgets(), fputs() (1)、fprintf(#FILE *restrict#, #const char *restrict,...#卡塔尔(英语
  • python面向对象三大特征,面向对象
    python面向对象三大特征,面向对象
    面向对象-组合 风流罗曼蒂克、面向进度与面向对象的简要介绍 一、继承 大器晚成 什么是多态动态绑定(在这里起彼伏的背景下行使时,一时也称得上多
  • HttpRuntime的认知与抓好明白,异步HTTP乞请操作
    HttpRuntime的认知与抓好明白,异步HTTP乞请操作
    一、说明 上边最早介绍HttpRuntime的Web.config里的构造 1卡塔尔(英语:State of Qatar) 那些类 是本身 在安分守己项目中,优化驱除实际难题时,不参照第三方代码