ThinkPHP数据多条件查询代码问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP数据多条件查询代码问题?相关的知识,希望对你有一定的参考价值。

代码如下:数据库表有文章article,用户user,文章付费表payread。
$article_list = Db::name('article')->alias('a')->join('user u', 'u.id=a.uid')->join('payread f', 'f.fid=a.id')->where('a.open', 1)->field('a.*,u.username,u.userhead,f.score')->order('a.id desc')->paginate($this->
文章付费表payread里面只有付费文章的id。
现在主要问题是我加了文章付费表查询后,判断文章是否免费,但原来免费的文章都不显示了,只显示付费的文章。我想要能够同时显示免费和付费的文章。就是不知怎么搞!

参考技术A 把 join 改成 leftJoin追问

不行,提示这个
method not exist:think\db\Query->leftJoin
可以了,语法格式写错了
join('word w','a.id = w.artist_id','RIGHT')

本回答被提问者采纳

thinkphp where里如何加两个判断条件求大神!

当前我的where里有了一个

where('pid='.$prz[$c]['id'][$key]['id'] )这个判断条件,如何在里面在加一个reend=1呢!
where('pid='.$prz[$c]['id'][$key]['id'] and ‘reend=1’)这样没有用!

以下是源代码!
$product=D('Product');//产品列表数据
$prod=D('Prod');//机构列表
$prz=$prodn;
foreach ($prz as $c => $va)
$prz[$c]['id']=$prod->where('pid='.$va['id'])->select();
foreach ( $prz[$c]['id'] as $key => $value)
$prz[$c]['id'][$key]['id'] = $product->where('pid='.$prz[$c]['id'][$key]['id'] )->order("eid desc")->select();

参考技术A

where('pid='.$prz[$c]['id'][$key]['id'] )


$where = array();
$where['pid'] = $prz[$c]['id'][$key]['id'];
$where['reend'] = 1;
 $prz[$c]['id'][$key]['id'] = $product->where($where)->order("eid desc")->select();

本回答被提问者采纳
参考技术B $where=array('字段名'=>'条件1','字段名'=>'条件2');$this–>where($were)后面的就不写了追答

没注意看,把$this换成模型,你应该懂的。手机写写错了,抱歉。条件以数组的形式来写

参考技术C 最后再来个预处理 参考技术D 数组

以上是关于ThinkPHP数据多条件查询代码问题?的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP求助,关联模型查询如何跨表多条件查询

ThinkPHP中查询数据库where()中的条件必须包含主键值吗

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

TP5 多条件whereOr查询

Thinkphp 查询条件 and 和 or同时使用即复合查询

MySql怎么实现多条件查询呢?我有五种条件。关键是我想知道查询语句该怎么精简。