【问题标题】:Codeigniter db like not working in arrayCodeigniter db 就像不在数组中工作一样
【发布时间】:2012-12-15 03:44:24
【问题描述】:

我想在我的数据库中添加更多列进行搜索,这是我的原始脚本。

public function getProductsByName($name, $limit, $start) {
    $this->db->limit($limit, $start);
    $this->db->order_by("id", "desc"); 
    $this->db->like("name", $name); 
    $query = $this->db->get('products');

    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }

    return false;
}

这是我修改后的脚本,可以在 3 列中找到。

public function getProductsByName($name, $limit, $start) {
   $this->db->limit($limit, $start);
   $this->db->order_by("id", "desc"); 
   $array = array('name' => $name, 'code' => $code, 'ean' => $ean);
   $this->db->like($array); 
   $query = $this->db->get('products');

   if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }

        return $data;
   }

   return false;
}

这里有什么问题?

感谢任何帮助。

【问题讨论】:

  • 你正在尝试什么,你能简单解释一下......
  • 我试图通过代码、名称和 ean 在 db 中搜索,第一个函数仅用于名称。谢谢
  • 如果您尝试 3 个项目,您是否将这三个作为参数传递............我不这么认为......

标签: mysql codeigniter sql-like


【解决方案1】:

要像您说的那样选择数据,您需要准确说出您使用的变量$code and $ean。 另一件事是您创建的data[],没有必要创建这样的数组。 当您致电$query->result();时,您会得到相同的结果

public function getProductsByName($name, $limit, $start,$code,$ean) {
    $this->db->limit($limit, $start);
    $this->db->order_by("id", "desc"); 
    $array = array('name' => $name, 'code' => $code, 'ean' => $ean);
    $this->db->like($array); 
    $query = $this->db->get('products');

    if ($query->num_rows() > 0) {
        return $query->result();
    }

    return false;
}

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多