thinkphp的select和find的区别

thinkphp的select和find的区别,第1张

问题分析:

在Thinkphp中,select和find主要有2个区别,分别为:

1、查询数量的不同:

select是查询符合条件的多条数据或者说符合条件的全部数据。

find是查询符合条件的第一条数据。

2、查询返回格式不同:

select返回的是二维数组,就算查询结果仅仅只有一条,返回的任然是二维数组。

find返回的是一维数组。

举例如下:

假设表名为test,数据表中包含5条数据,分别为:

1、select查询:

Thinkphp执行代码:

db('test')->select(); //获取数据表全部数据。

执行结果:

2、find查询:

Thinkphp执行代码:

db('test')->find(); //获取数据表第一条数据。

执行结果:

输出同一个值?是指同一个数组元素吧?

那么调用{$res0xx}等同于$res[0]['xx'],你可以调用无数次。

输出两行值,则用volist或者foreach标签循环。

//首先在控制器里注入变量

$this->assgin('res',$res);

以下是模版里的volist循环实例

<volist name="res" id="vo">

{$void}:{$voname}<br/>

</volist>

$good=$cart->field("goods_id")->where("member_id='$mid'")->select();

这个查询出来的不是一维数组,是个二维数组。

类似

[

0=>["goods_id"=>1],

1=>["goods_id"=>2],

];

可以这么写

$goods_ids=$cart->where("member_id='$mid'")->getField("goods_id");

$com=$commodite->where(["id"=>["in",$goods_ids]])->select();

完成度=已填写字段数/需填写字段总数100%。这里对你可能会照成困扰的应该是如何得到已填写的字段数。

先查询出一维数组 select from user where id ='1'; 得到一个一维数组,然后利用array_filter过滤掉值为空的值 count(array_filter($res));这个就是已填字段数了

完成度就等于 count(array_filter($res))/ count($res) 100%

更多问题到问题求助专区>

以上就是关于thinkphp的select和find的区别全部的内容,包括:thinkphp的select和find的区别、thinkPHP 一维数组的一个值怎么输出在模板上、ThinkPHP3.2一个数据库里的id怎么接收一个数组id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9651420.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存