MySQL过滤checkboxlist值

时间:2014-06-25 08:46:15

标签: php mysql yii

我想过滤多个以逗号分隔的值存储在我的数据库中。当我存储我的值时,我将它们摧毁为例如'53,57,58'。所以我可以再次爆炸,以在我的概述中显示正确的值。但现在的事情。

我现在使用inCondition过滤它们(我使用YII):

if( count( $sector ) > 0 )
   $criteria->addInCondition( 'sector', $sector );

所以这在我选择1个选项时有用。如果我选择2个选项,则仅当所选选项与数据库记录的顺序相同时才有效。所以这不会发生很多;-)。

现在我的问题。如何将我的搜索值与我的数据库记录相匹配?有谁知道如何处理这个?

谢谢!

编辑: 解决方案:

用于循环抛出数组并为每个选定的项添加搜索条件,如下所示:

if( count( $niveau ) > 0 ){
    foreach ($niveau as $n)
        $criteria->addSearchCondition( 'niveau', $n, true, 'AND' );
}

1 个答案:

答案 0 :(得分:0)

试试这个:

if(count($niveau)) > 0) {
    $niveauConditions = array();
    foreach($niveau as $n) {
        $niveauConditions[] .= "CONCAT(',', `niveau`, ',') LIKE '%,{$n},%'";
    }
    $criteria->addCondition(implode(' OR ', $niveauConditions));
}

如果这有助于您,请告诉我。 另外您认为可以使用FIND_IN_SET