Codeigniter:模型查询不检索任何数据

时间:2012-09-03 20:06:16

标签: php codeigniter

在我的数据库中,我的字段值为

1蓝白色

2白蓝

3 Blue

4 White

每个ids

我有一个控制器,我声明$ color =" White Blue"并将其传递给模型。 在我的模特中,我使用' explode'分开这两个单词并使用for-each进行提取。

这是我的模特:

  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' 在第一个for-each之后,它使用' AND'。你对我如何使这项工作有任何想法吗?

2 个答案:

答案 0 :(得分:1)

tags like '%$colr'or

缺少空格?

tags like '%$colr' or

此外,将$颜色放在'%'之间。应该足够了。不需要其他线路。

所以,这应该可以解决问题:

public function test($color){

    $arry = explode(" ", $color); 

    foreach($arry as $colr){
      $this->db->where("tags like '%$colr%' "); 
    }

    $q=$this->db->get('test');
    return $q;

}

答案 1 :(得分:1)

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;

}