首页 > 作文

thinkphp实现数组分页示例

更新时间:2023-04-06 23:02:53 阅读: 评论:0

在thinkphp的框架下实现分页。公司的网站基于thinkphp框架,一直久闻thinkphp的大名,终于有机会实战了。thinkphp是mvc架构的,mvc对于任何iters来说都不陌生,模型(model)-视图(view)-控制器(controller)。他将逻辑和数据分开处理,少了很多繁琐的过程。其实在官方的资料中已经详细的介绍了怎么分页,传送门:

可是并不适用于数据已经从db中取出,并且转换为数组的情况,我接触php满打满算2个月,接触thinkphp不过3周。之前把很多时间花在了官方文档上,去熟悉thinkphp。也算是磨刀不误砍柴工吧。这里把官方文档当作比较进行阐述:

(只举文档上第一个方法):利用page类和limit方法,代码如下:

复制代码 代码如下:

$ur = m(‘ur’); // 实例化ur对象

$count= $ur->where(‘status=1’)->count();// 查询满足要求的总记录数

$page = new \think\page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)

$show = $page->show();// 分页显示输出

// 进行分页数据查询 注意limit方法的参数要使用page类的属性

$list = $ur->where(‘status=1’)->order(‘create_time’)->limit($page->firstrow.R大学体检17;,’.$page->listrows)->lect();

$this->assign(‘list’,$list);// 赋值数据集

$this->assign(‘page’,$show);// 赋值分页输出

$this->display(); // 输出模板

基本思想就是先计算总的记录数,然后根据所设置的每页显示的记录数来分页。使用thinkphp封装好的page类可以很方便的实现。实现的重点在第11行,limit方法就是按照一定的规则从查询数据中抽取数据。但是数据已经取出又怎么办呢?

我们用到了php自带的函数array_slice( )。定义在此:http://www.php.net/manual/en/function.array-slice.php

其实就是数组版的limit方法。好了,工具找到了,实现就很容易了。直接上代码:

复制代码 代码如下:

public function nodeslist(){

$portal = new portalapi;

$nodelist = $portal->getnodelis费凡ts($this->uid);

$count = count($nodelist[‘data’]);

$p = new page($count,10);

$lists = array_slice($nodelist[‘data’], $p->firstrow,$p->listrows);

$page = $p->show();

$this->assign(‘page’,$page);

$this->assign(‘nodes’,$lists);

$this->display();

}

代码有删减,只保留实现细节。

第3行getnodelists方法从数据库中取出数据并赋值给数组nodelist。

第5行count计算出数组元素的个数。

第6行为page类传入参数。

第7行的array_slice函数代替了limit方法。原理相同。

第9行用assign方法为模版赋值。定义在此:http://document.thinkphp.cn/manual_3_2.html#assign

第10行同理。

下面是view中的代码:

复制代码 代码如下:

<div class=”page-list王峰 最强大脑221;>

{$page}

</div>

如果仅仅这样的话,显示出来的效果并不友好。再找出来page类的定义:

复制代码 代码如下:

// 分页显示定制

private $config= array(

‘header’ => ‘<span class=”rows”>共 %total_row% 条记录</小学二年级上册数学练习题span>’,

‘prev’ => ‘上一页’,

‘next’ => ‘下一页’,

‘first’=>上海商学院是几本; ‘第一页’,

‘last’ => ‘…%total_page%’,

‘theme’=> ‘%first% %up_page% %link_page% %down_page% %end%’,

在页数前后加入空格。现在可以看效果了:

跟大背景还是挺配,当然,可以根据自己的情况设置不同的效果。

本文发布于:2023-04-06 23:02:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3e31357c6a504237f777d742e42a0aa2.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:thinkphp实现数组分页示例.doc

本文 PDF 下载地址:thinkphp实现数组分页示例.pdf

标签:分页   代码   方法   赋值
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图