Как совмещать и / или операторы в продуктовых магазинах?

Я использую codeigniter и grocerycrud, я хочу установить таблицу с grocerycrud следующим образом:

SELECT * FROM `dashboard`.`medidas_ludlum`
where FK_ludlum='190.26.88.131'
and date>= '2014-03-04 09:40:00'
and date<= '2014-03-05 09:40:00'
and (error_code=1 or audio_status=1);

Я попытался сделать это следующим образом:

  $uno='1';
  $crud2 = new grocery_CRUD();
  $crud2->set_theme('datatables');
  $crud2->where('FK_ludlum',$ludlum_id);
  $crud2->where('date>=',$fechainicio);$crud2->where('date<=',$fechafin);
  $crud2->where('error_code =',$uno);
  $crud2->or_where('audio_status =',$uno);
  $crud2->set_table('medidas_ludlum');
  $crud2->columns('measurement', 'fecha', 'audio_status', 'high_alarm_status', 'low_alarm_status','over_range_status','monitor_status','error_code');
  $crud2->set_language("spanish");
  $crud2->unset_add();$crud2->unset_delete();$crud2->unset_edit();$crud2->unset_read();
  $data['crud2'] = $crud2->render();

Однако это не дает правильных результатов, например, я получаю строки с датой вне диапазона, есть ли способ настроить CRUD?

1 ответ

Решение

Продуктовый творог также использует активную запись codeigniter, так что вы можете написать свой where() с сгруппированными условиями, как показано ниже, нет необходимости использовать or_where() функция

$crud2->where('(error_code ='.$uno.' OR audio_status ='.$uno.')',null,FALSE);

или же

$crud2->where('(error_code =1 OR audio_status =1)',null,FALSE);

Проблема в вашем запросе, когда вы используете or_where() функция, которую она производит, где предложение как and error_code=1 or audio_status=1 и используя подход, который у меня есть, вы получите пункт where как and (error_code=1 or audio_status=1) сгруппированное состояние

Список API и функций

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