Я использую Codeigniter 3 для создания веб-сайта. Но теперь у меня проблема с получением данных из базы данных.
это моя модель:
public function Get($arr_condition = null)
{
if (!is_null($arr_condition))
{
$this->db->where($arr_condition);
}
$query = $this->db->get('cus');
if ($query->num_rows()>0)
{
return $query->result_array();
}
return false;
}
В контроллере я использую массив ($ arr_condition) для получения условного списка:
$arr_condition['Cus_team'] = 1;
$arr_condition['Cus_user != '] = 2;
$arr_condition['Cus_phone LIKE'] = 09900000;
$arr_condition['Cus_role >'] = 1;
$result = $this->M_cus_dal->Get($arr_condition);
Мой код работает отлично, пока мне не понадобится условие с Where_in, я попробовал:
$arr_condtion['Cus_id IN']= array('1,2,3');
Но это не сработает.
Пожалуйста, дайте мне идеал для решения этой проблемы.






Надеюсь, что это поможет вам :
Вы можете сделать что-то вроде этого:
В контроллере передайте ваше условие where_in с другим параметром, подобным этому
$where_in = array('1,2,3');
$result = $this->M_cus_dal->Get($arr_condition,$where_in);
В методе модели получите $where_in в качестве второго параметра и добавьте его в предложение where_in следующим образом:
public function Get($arr_condition = null,$where_in = NULL)
{
if (!is_null($arr_condition))
{
$this->db->where($arr_condition);
}
if (! empty($where_in))
{
$this->db->where_in('Cus_id',$where_in);
}
$query = $this->db->get('cus');
if ($query->num_rows()>0)
{
return $query->result_array();
}
return false;
}
а второй способ - гораздо лучший способ получить желаемый результат
должно быть похоже на этот $arr_condtion['Cus_id IN '] = '(1,2,3)';, проверьте, работает он или нет, но предпочитайте второй способ, пожалуйста, дайте мне знать
Спасибо @pradeep, я попробовал второй способ, и он работает правильно. Теперь у меня нет больше времени, поэтому я оптимизирую свою функцию на основе вашего идеала. Еще раз спасибо!
Извините, вчера я использовал смартфон, чтобы проверить ваш ответ зеленым. Но я не понимаю сегодня чек, пока не проверил. :(
Если вы используете where_in, тогда ваши идентификаторы должны быть в массиве
как это:
$where_in[] = 1;
$where_in[] = 2;
$where_in[] = 3;
ИЛИ ЖЕ
$where_in = array('1','2','3');
$this->db->where_in('Cus_id', $where_in);
Спасибо @pradeep, я попробовал первый способ, но результат в mysql -
Cus_id = 'IN (1,2,3)'. Так что попробую второй способ.