Php 如何在Yii中进行多条件查询?
我想做一个可以有多个条件的查询,如下所示:Php 如何在Yii中进行多条件查询?,php,mysql,sql,yii,Php,Mysql,Sql,Yii,我想做一个可以有多个条件的查询,如下所示: 从表中选择*,其中c1在(…)中,c2在(…)中,c3在(…)中 我可以使用3个字段(c1..c3),也可以只使用一个字段,IN子句的数组也不固定,下面是我的代码: $w = 'select * from jobs where '; $c1 = new CDbCriteria(); if($dcr!=null){
从表中选择*,其中c1在(…)中,c2在(…)中,c3在(…)中代码>
我可以使用3个字段(c1..c3),也可以只使用一个字段,IN子句的数组也不固定,下面是我的代码:
$w = 'select * from jobs where ';
$c1 = new CDbCriteria();
if($dcr!=null){
$w = $w.'division IN(';
$dcrr = "'". implode("', '", $dcr) ."'";
$w = $w.$dcrr.");";
foreach($dcr as $txt){
$c1->compare('division',$txt,true,'OR');
}
}
if($lcr!=null){
$c2 = new CDbCriteria();
foreach($lcr as $txt){
$c2->compare('location',$txt,true,'OR');
}
}
if($scr!=null){
$c3 = new CDbCriteria();
foreach($lcr as $txt){
$c3->compare('Salary',$txt,true,'OR');
}
}
$connection=Yii::app()->db;
$connection->active=true;
$command=$connection->createCommand($w);
$model = $command->query();
$connection->active=false;
$w='';
//$model = Jobs::model()->findAll($c2);
}
}
$this->renderPartial('_index', array('model'=>$model));
想法是使用
使用类似的方式:
$criteria = new CDbCriteria();
if ($useC1)
{
$criteria->addInCondition('c1', getOptionsArrayForC1());
}
if ($useC2)
{
$criteria->addInCondition('c2', getOptionsArrayForC2());
}
if ($useC3)
{
$criteria->addInCondition('c3', getOptionsArrayForC3());
}
查看yiiframework.com/doc/guide/1.1/en/quickstart.first-app,了解如何正确使用Yii。检查MVC模式和GII!很抱歉,您的代码不符合Yii。@lin我知道如何使用Yii,此代码不起作用,我对其进行了多次编辑,然后在更新之前没有删除属性就复制了它,我的问题是如何在CDBCONNECTION中使用多条件进行查询,谢谢