在我的数据库中,我有值为的字段
1个蓝白
2白蓝
3蓝色
4白色
对于每个id。
我有一个控制器,我在其中声明$color="白蓝",并将其传递给模型。在我的模型中,我用"爆炸"来分隔这两个单词,并用a来提取每个单词。
这是我的型号:
public function test($color){
$arry = explode(" ", $color);
foreach($arry as $colr){
$this->db->where("tags like '%$colr%' or
tags like '%$colr'or
tags like '$colr%' ");
}
$q=$this->db->get('test');
return $q;
}
当我尝试在localhost上运行它时,它会给我一个成员函数调用result()错误。我知道这种错误意味着它无法从我的数据库中检索到任何数据。当我试图在查询中添加错误时,我发现如果使用"OR"在每个的第一个之后,它使用"AND"。你知道我该怎么做吗?
tags like '%$colr'or
缺少空格吗?
tags like '%$colr' or
此外,将$colr置于"%"之间就足够了。不需要其他线路。
因此,这应该起作用:
public function test($color){
$arry = explode(" ", $color);
foreach($arry as $colr){
$this->db->where("tags like '%$colr%' ");
}
$q=$this->db->get('test');
return $q;
}
public function test($color){
$arry = explode(" ", $color);
foreach($arry as $colr) $this->db->or_where("tags like '%$colr%' ");
$q=$this->db->get('test');
return $q;
}