问题是它显示了db中的所有行,而不是仅显示包含搜索关键字的行:请帮助我。
public function search($data)
{
$name = $data["name"];
$surname = $data["surname"];
$this->db->select('*');
$this->db->from('workers');
$this->db->like('name', '%' . $name . '%');
$this->db->or_like('surname', '%' . $surname . '%');
$query = $this->db->get();
最佳答案
您以错误的查询方式编写了CI,请查询documentation如何正确编写它
您的查询应如下所示。无需添加%
。如果您未传递类似函数的第3个参数,则CI会添加它们。
$this->db->select('*');
$this->db->from('workers');
$this->db->like('name', $name);
$this->db->or_like('surname', $surname);
$query = $this->db->get();
最好使用这样的有效数据。
$this->db->select('*');
$this->db->from('workers');
if($name)
{
$this->db->or_like('name', $name);
}
if($surname)
{
$this->db->or_like('surname', $surname);
}
$query = $this->db->get();
关于php - 如何编写像查询这样的codeigniter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30357580/