一次搜索多个字段?

时间:2014-03-21 19:24:03

标签: codeigniter

如果我的数据库中有CarMakeCarColour的字段。发生的事情是如果我输入Toyota它会让所有丰田汽车都恢复正常。如果我输入Blue,它会返回所有蓝色汽车。如果我输入Blue Toyota,它似乎可以让所有蓝色丰田汽车恢复正常,但是如果我输入Toyota Blue它会返回所有丰田汽车,但也会返回任何蓝色汽车,无论其是什么。

这就是我所拥有的:

public function searchCars($data)
{
    $keywords = explode( ' ', $data);

    foreach ($keywords as $keyword)
    {
        $keyword = trim($keyword);
        $this->db->where("`CarMake` LIKE '%$keyword'");
        $this->db->or_where("`CareColour` LIKE '%$keyword'");
    }

    $query = $this->db->get('cars');
    return $query->result();
}
}

1 个答案:

答案 0 :(得分:1)

或者

$this->db->select( 'id,FirstName,Surname' );
$this->db->where('FirstName', $firstname);
$this->db->or_where('Surname', $surname);
$query = $this->db->get( 'namestable' );

更多信息:http://ellislab.com/codeigniter/user-guide/database/active_record.htm

编辑==========

如果你想做一个基于类似的搜索,那么尝试CI

 foreach ($keywords as $keyword)
    {
        $keyword = trim($keyword);
        $this->db->or_like('CarMake', $keyword );
        $this->db->or_like('CareColour', $keyword );
    }

请注意$ keyword变量周围有无引号