Codeigniter or_where не работает вместе с or_like

#codeigniter

#codeigniter

Вопрос:

$this-> db-> or_where($where); это не работает.. он не возвращает значение.. но когда я удаляю инструкции or_like (), он работает нормально.. не может or_where работать вместе с or_like? помогите, пожалуйста..

     public function search(){

    $capacity1 = $this->input->post('capacity1');
    $capacity2 = $this->input->post('capacity2');
    $capacity3 = $this->input->post('capacity3');
    $capacity4 = $this->input->post('capacity4');
    $gender = $this->input->post('gender');
    $establishment_type = $this->input->post('type');
    $price = $this->input->post('price');

    $cprice = intval($price);


    if($price == "1499"){
      echo "1499";
    $where = "price < 1500";

    $this->db->or_where($where);
  }


    $this->db->or_like('capacity', $capacity1);
    $this->db->or_like('capacity', $capacity2);
    $this->db->or_like('capacity', $capacity3);
    $this->db->or_like('capacity', $capacity4);
    $this->db->or_like('type', $establishment_type);
    $this->db->or_like('gender', $gender);


    $query = $this->db->get('establishment');




    return $query->result_array();


}
  

Комментарии:

1. для функции or_where требуется 2 параметра, подобных этому; $this-> db->or_where(‘цена <‘, 1500);

2. or_where по-прежнему не работает с or_like, но затем я удаляю инструкции or_like.. он работает нормально.

Ответ №1:

используйте where() вместо or_where() . Тогда ваш код выдаст что-то вроде:

« WHERE price < 1500 or capacity LIKE '%yourcapacity' ….и т.д.»

Ответ №2:

Я получил этот ответ..

  if (count($this->ar_like) > 0)
        {
            if (count($this->ar_where) == 0)
            {
                $this->ar_like[0] = str_replace(array('OR','AND'),'',$this->ar_like[0]);
            }

            $sql .= implode("n", $this->ar_like);
        }  
  

для получения более подробной информации посетите эту тему
https://ellislab.com/forums/viewthread/99235/#501303