问题是它显示了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/

10-10 03:59
查看更多