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中使用多条件进行查询,谢谢