Codeigniter дБ вроде не работает в массиве

Я хочу добавить больше столбцов для поиска в моей базе данных, это мой оригинальный скрипт.

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;
}

Что здесь не так?

Любая помощь приветствуется.

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;
}

надеюсь, это поможет вам

Другие вопросы по тегам