【问题标题】:how to change variable when filter is on过滤器打开时如何更改变量
【发布时间】:2012-04-23 09:45:44
【问题描述】:

您好,我想为我网站上的搜索引擎编写一个过滤器。现在我认为这将是使用简单过滤器的最佳方式。所以我的代码看起来像:

}else if ($filter_a === 1){
        $filter = "WHERE `a` LIKE '%$a%'";
}else if ($filter_b === 1){
        $filter = "WHERE `b` LIKE '%$b%'";
}else if ($filter_c === 1){
        $filter = "WHERE `c` LIKE '%$c%'";
...
}else if ( ($filter_a === 1) && ($filter_b === 1) ){
        $filter = "WHERE `a` LIKE '%$a%' AND `b` LIKE '%$b%'";
}else if ( ($filter_a === 1) && ($filter_c === 1) ){
        $filter = "WHERE `a` LIKE '%$a%' AND `c` LIKE '%$c%'";
... and so on

问题是我有 5x N 所以这个排列将是 $filter 的 120 个可能性

有没有办法解决这个问题?如果有人可以帮助我,我真的很感激。非常感谢。

【问题讨论】:

    标签: php mysql variables permutation


    【解决方案1】:

    这样怎么样?

    if ($filter_a === 1) {
            $filter[] = "`a` LIKE '%$a%'";
    }
    if ($filter_b === 1) {
            $filter[] = "`b` LIKE '%$b%'";
    }
    if ($filter_c === 1) {
            $filter[] = "`c` LIKE '%$c%'";
    }
    $filter = "WHERE ".implode(" AND ", $filter);
    

    【讨论】:

    • 你好,效果很好。非常感谢你。祝你有美好的一天。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多