+ -
当前位置:首页 → 问答吧 → 模糊查询的问题,急,急,急

模糊查询的问题,急,急,急

时间:2011-06-16

来源:互联网

$keyword=$_POST['keyword'];
            $short_title= array();
            for($i=0;$i<mb_strlen($keyword,"UTF8");$i++){
                $short_title[$i]=mb_substr($keyword, $i,1,"UTF8");
            }



如果用
$condition['shortTitle'] = array();
            $i=0;
            foreach ($short_title as $v){
                $condition['shortTitle'][$i]=array('like','%'.$v.'%');
                $i++;
            }
                $condition['shortTitle'][$i+1]='or';
$resultList=M("AllInfo")->where($condition)->select();
则无结果
如果用$condition['shortTitle'] = array(array('like','%济%'), array('like','%南%'),'or');
$resultList=M("AllInfo")->where($condition)->select();则能查出结果。

如果dump两个数组结果是一样的。求解

作者: b739916950   发布时间: 2011-06-16

没人回答自己回答, 问题出现在$condition['shortTitle'][$i+1]='or';, 改为$condition['shortTitle'][$i]='or';就好了,原因是$i的值一开始弄错了,犯这样的错误,不应该啊,希望朋友们不要像我一样

作者: b739916950   发布时间: 2011-06-16

通常这种情况我都喜欢写成:
$where = "`title` LIKE '%南% OR `shortTitle` LIKE '%南%'";
$rows = $model->where($where)->findAll();

作者: deeka   发布时间: 2011-06-16