php分页要先查询一条再查询多条吗,Thinkphp5分页查询及上一条下一条功能的实现...

一、需求场景:

在项目中我们经常要展示数据,如果一次性加载全部数据,不便于我们浏览,对系统速度还有一定的影响。因此,可以在项目中使用分页功能,只展示一定数量的、我们较为关注的数据,并不需要加载全部数据。比如:显示管理员列表信息、文章列表信息、栏目列表信息等;有时我们要查询文章,输入一个字、一个词或者几个字进行模糊查询相应文章,就要在分页时在每一页都要传递查询关键字;还有一种比如上一篇文章和下一篇文章,我们只需要这种简洁模式并不需要复杂的分页显示效果来展示数据。

在具体使用时我们又分为三种场合,

第一种只分页显示需要的数据:如管理员信息表

f5e25e0e32c7e7112b7fb0b2b8fcd9f1.png

第二种只显示分页项中的上一条和下一条:

0576b0f054fe2b89b3ee71bdaaae5f86.png

第三种带查询条件的分页功能:

db7caea5dd7d9c02f4d3fe6e26668181.png

二、遇到的问题:

1.不带分页查询参数的使用方法?

2.带有分页查询参数的使用方法?

3.分页简单模式上一页和下一页,不需要显示其内容?

三、解决方法:

1.不带查询参数的分页

$admin=db(‘admin’)->order(‘id desc’)->paginate(10);

前台显示分页代码:{$admin->render()}

2.带有分页查参数

be9375bb90725975c35b78550c6a58a6.png

代码如下:

/**

* 搜索文章

*/

public function index(){

$keywords=input(‘keywords’);

if($keywords){

$map[‘title’]=[‘like’,’%’.$keywords.’%’];

//$articles=Article::where($map)->order(‘id desc’)->paginate(10);

$articles=Article::where($map)->order(‘id desc’)->paginate($listRows = 1,  $simple = false,  $config = [

‘query’=>array(

‘keywords’=>$keywords

),

]);

$this->assign(array(

‘articles’=>$articles,

‘keywords’=>$keywords,

‘count’=>count($articles,1),

));

}else{

$this->assign(array(

‘articles’=>null,

‘keywords’=>’暂无关键字’

));

}

return $this->fetch();

}

3.分页简洁模式只显示上一页和下一页

$result=db(‘admin’)->order(‘id’,’desc’)->paginate($listRows = 1,

$simple = true

,  $config=[]);//$simple为true,则分页显示效果为简洁模式

四、小结:

分页功能在项目中使用是很频繁,掌握和灵活使用它是非常有必要的,在以后的项目中根据实际需求,灵活应用好它的三种使用方式。第一种和第三种相对简单,唯有传递查询参数的分页相对较为难懂,多加练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值