
正文
thinkphp分页带条件查询 thinkphp5 分页
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
thinkphp 添加查询条件:
thinkphp查询条件支持数组形式的。它会自动解析的。
就像你写的username条件一样,如果想额外增加条件,直接增加条件变量的数组成员就可以了。
例如需要增加mobile字段的条件。可以直接写:
$condition['mobile'] = '123456789';
如有疑问,可继续追问。
相关问答
Q1: thinkphp 分页问题求教啊
你的这么多啊 太麻烦了
贴一段我自己的分页代码给你:
public function wenda(){
$m = M('OStore');
$sql = "id0"; //不要修改这个
$parameter="";
$id = $_GET['id']; //如参数是URL传递的 就用$_GET取值 ,如是不是,是表单post传递过来的就用 $_POST取值
$pno = $_GET['products_no'];
$cno = $_GET['cus_no'];
$cname = $_GET['cus_name'];
if($id''){$sql .= " and id = '$id'";$parameter .= 'id='.urlencode($id);}
if($pno''){$sql .= " and pno like '%$pno%'";$parameter .= 'products_no='.urlencode($pno);}
if($cno''){$sql .= " and cno like '%$cno%'";$parameter .= 'cus_no='.urlencode($cno);}
if($cname''){$sql .= " and cname like '%$cname%'";$parameter .= 'cus_name='.urlencode($cname);}
import("@.ORG.Page");
$count = $m-where($sql)-count();
if($parameter==""){
$page = new Page($count,5); //不带参数分页 所有文档
}else{
$page = new Page($count,5,$parameter); //带参数分页
}
$plist = $page-show();
$list = $m-where($sql)-order('id desc')-limit($page-firstRow . ',' . $page-listRows)-select();
$this-assign('list', $list);
$this-assign('page', $plist);
$this-display('index');
}
在html页面里条用如下
volist name="list" id="vo"
xxxxxxxxxx
/volist
div class="page"{$page}/div
Q2: thinkphp 3.1 这个查询怎么进行分页
一、首先需要在MsgManage控制器中加入分页方法
知识点:
1、count函数的试用
2、Page类实例化操作及相关参数了解
3、limit函数了用
4、show函数了解
编辑文件admin/Lib/Action/MsgManageAction.class.php
代码如下:
复制代码代码如下:
class MsgManageAction extends CommonAction {
public function index(){
import('ORG.Util.Page');
//import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Page.class.php类文件
$count = M('board')-count();
//调用board库,取出所有数据条数
$page = new Page($count ,10);
//实例化Page类,其中第一个参数为显示条数的总数,每次取出十条,也就是下面$page-listRows的值
$limit = $page-firstRow . ',' . $page-listRows;
//$page-firstRow为查找的起始条数,默认为0,如果$page-listRows为10,那么第2页的$page-firstRow就为10,以此类推
$board = M('board')-order('time DESC')-limit($limit)-select();
//注意,这里较之前的版本添加了-limit($limit)
$this-board = $board;
$this-page = $page-show();
//将$page-show()通过show方法解析$page内容显示并赋值给模板变量,供模板调用
$this-display();
}
Public function delete(){
$id = I('id','','intval');
if(M('board')-delete($id)){
$this-success('删除成功',U('index'));
}else{
$this-error('删除失败');
}
}
}
show方法是3.1版本才有的一个新功能
ThinkPHP中页面输出的过程是读取模板文件,然后进行模板解析(也支持调用第三方模板引擎解析),但是有一些情况,我们并没有定义模板文件,或者把模板文件保存在数据库里面,那么这个时候进行页面输出的时候,我们是无法进行模板文件读取的,3.1版本则针对这样的情况增加了内容解析输出的功能。
内置的模板引擎也进行了完善,如果传入的模板文件不存在的话,则会认为是传入的模板解析内容,因此,3.1的View类和Action类也做了一些改进。
display方法用于模板文件渲染输出,show方法则用于模板内容渲染输出,并且show方法仍然支持内容解析功能
具体内容可参考:ThinkPHP3.1新特性 内容解析输出
二、在模板文件中加入分页模块
知识点:
1、td单元格合并
2、$page变量调用显示
编辑文件:admin/Tpl/MsgManage/index.html,加入一段tr用来显示分页相关,代码如下:
复制代码代码如下:
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleMessage Board BackGround/title
/head
body
table class="table" border="1"
tr
thID/th
th发布者/th
th内容/th
th发布时间/th
th操作/th
/tr
foreach name='board' item='b'
tr
td{$b.id}/td
td{$b.username}/td
td{$b.content}/td
td{$b.time|date='y-m-d H:i',###}/td
tda href="{:U('admin.php/MsgManage/delete',array('id' = $b['id'])),''}"删除/a/td
/tr
/foreach
//新增tr代码短
tr
td colspan='5' align='center'
//将5个单元格合并,并且居中显示
{$page}
//显示控制器中$this-page内容
/td
/tr
/table
/body
/html
Q3: tp5怎么实现搜索分页能保留搜索条件
假如查询用户名,那么用户名username通过get提交过来,记住必须是get提交,tp5的代码如下:
$list = Db::name('user')-where('username','张三')-paginate('10',false,['query'=request()-param()]
);
paginate()第一个参数是每页的记录条数,第二个是否为简单的样式,true的话就只有上一页和下一页,false就带页码,第三个参数最关键,必须这样子写
Q4: thinkphp3.2 分页之后保持查询条件 怎么做
把查询条件写在session里面,然后每次默认的查询数据都用session值来代替。
Q5: thinkphp自带的分页 查询数据时怎么使用where条件
1.如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值
$count = $User-where($map)-count();// 查询满足要求的总记录数
$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
//分页跳转的时候保证查询条件
foreach($map as $key=$val) {
$Page-parameter[$key] = urlencode($val);
}
$show = $Page-show();// 分页显示输出
2.如果是GET查询方式,将查询条件传给where
$where=$_GET;
$User = M('User'); // 实例化User对象
// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
$list = $User-where($where)-order('create_time')-page($_GET['p'].',25')-select();
$this-assign('list',$list);// 赋值数据集
$count = $User-where('status=1')-count();// 查询满足要求的总记录数
$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
$show = $Page-show();// 分页显示输出
$this-assign('page',$show);// 赋值分页输出
$this-display(); // 输出模板
关于thinkphp分页带条件查询和thinkphp5 分页的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







