
问题分析:
在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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)