thinkphp3.2.3 查询时使用where+select查询出来的比find查询多一个空数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp3.2.3 查询时使用where+select查询出来的比find查询多一个空数组相关的知识,希望对你有一定的参考价值。

第一张图为find()查询结果,第二张为where+select的查询结果

find() 这个函数是只查一个,tp会只返回第一条数据。
select() 这个一般反悔的是多条数据,即使你limit 为1,tp 默认返回的是一个数组。
参考技术A select 可以查到多个结果 如:id 1 和2 参考技术B find()是按条件查询出一条数据
select() 是按条件查询出所有符合条件的数据,并存入一个数组中返回,即使只有一条数据符合条件,也会存入数组中.
参考技术C 这样吧,我通俗一点回答。
find()返回的是一维数组
select()返回的是多维数组
参考技术D find() 这个函数是只查一个,tp会只返回第一条数据。
select() 这个一般反悔的是多条数据,即使你limit 为1,tp 默认返回的是一个数组。
如果你还有不懂得可以去后盾人看视频学习

thinkphp自带的分页 查询数据时怎么使用where条件

参考技术A

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(); // 输出模板

以上是关于thinkphp3.2.3 查询时使用where+select查询出来的比find查询多一个空数组的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP3.2.3中,查询语句中in的使用方法。

ThinkPHP3.2.3 find注入

thinkphp3.2.3 修改怎么写

thinkphp3.2.3怎么插入数据库

ThinkPHP3.2.3使用分页

ThinkPHP3.2.x SQL注入