为了账号安全,请及时绑定邮箱和手机立即绑定

tp框架可以这样使用if ...else...吗?

tp框架可以这样使用if ...else...吗?

PHP
白衣染霜花 2019-03-18 16:56:35
supplier:供应商dealer:经销商 select * from table where if(supplier!=0){ //当供应商不为0时,goods_id使用供应商的goods_id goods_id=supplier_goods } else(dealer!=0){ //当经销商不为0时,goods_id使用经销商的goods_id goods_id=dealer_goods } 可以有这种写法吗? tp中又该怎么写?
查看完整描述

7 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

//大概这样,只是个大概:
if($supplier !==0 ){ //当供应商不为0时,goods_id使用供应商的goods_id

    $where = 'goods_id=supplier_goods';

}else($dealer !== 0){ //当经销商不为0时,goods_id使用经销商的goods_id

    $where = 'goods_id=dealer_goods'; 

}
$data = $mysql->query("select * from table where {$where}");
建议将判断逻辑放在前面,让SQL一目了然

查看完整回答
反对 回复 2019-03-18
?
森栏

TA贡献1810条经验 获得超5个赞


$where['goods_id'] = ($supplier != 0) ? $supplier_goods : $dealer_goods;

Db::table('table')->where($where)->select();
查看完整回答
反对 回复 2019-03-18
?
桃花长相依

TA贡献1860条经验 获得超8个赞

定义一个变量来存储你的两个条件,把这个变量放在where后

查看完整回答
反对 回复 2019-03-18
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

1.将条件直接写在where里面;
2.将条件写在变量,然后where里面是该变量;
3.直接用query。

查看完整回答
反对 回复 2019-03-18
?
喵喔喔

TA贡献1735条经验 获得超5个赞

你直接在外面把变量的值判断好,然后查询的时候把变量写进去不是美滋滋吗

查看完整回答
反对 回复 2019-03-18
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

用个三目运算就OK了

查看完整回答
反对 回复 2019-03-18
  • 7 回答
  • 0 关注
  • 951 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信