Подскажите как обратиться к БД

Networx

Новичок
Здравствуйте уважаемые пользователи этого форума!
Ломаю голову, не знаю как правильно обратиться к таблице базы данных, есть функция php с кодом ниже. Мне нужно добавить в него if else типа вот такого образца:

if(t.i_from_user_id == $user_id) {
$this->dao->where('t.i_del_thread_from_status', 0);
} else if(t.i_to_user_id == $user_id) {
$this->dao->where('t.i_del_thread_to_status', 0);
}

Я не совсем понимаю как обратиться здесь именно к столбцу t.i_from_user_id и t.i_to_user_id

Подскажите если не трудно.

Большое спасибо!!!


Код:
public function getThreadsByUserId( $user_id = NULL, $limit = NULL, $offset = NULL ) {
  $this->dao->select('t.i_thread_id, t.fk_i_item_id, t.i_from_user_id, t.i_del_thread_from_status, t.i_del_thread_to_status, t.s_from_user_name, t.s_from_user_email, t.i_from_user_notify, t.i_to_user_id, t.s_to_user_name, t.s_to_user_email, t.i_to_user_notify, t.s_title, t.i_from_ip, t.d_datetime, count(m.pk_i_id) as i_count, t.i_flag');

  $this->dao->from( $this->getTable_threads() . ' as t' );
  $this->dao->join( $this->getTable_messages() . ' as m', 't.i_thread_id = m.fk_i_thread_id', 'LEFT OUTER' );


  if(isset($user_id) && $user_id <> '' && $user_id > 0) {
    $this->dao->where('t.i_from_user_id = ' . $user_id . ' OR t.i_to_user_id = ' . $user_id);  
  }
 

  $this->dao->groupby('t.i_thread_id, t.fk_i_item_id, t.i_from_user_id, t.i_del_thread_from_status, t.i_del_thread_to_status, t.s_from_user_name, t.s_from_user_email, t.i_from_user_notify, t.i_to_user_id, t.s_to_user_name, t.s_to_user_email, t.i_to_user_notify, t.s_title, t.i_flag');

  if(isset($limit) && $limit <> '' && $limit > 0 ) {
    if(isset($offset) && $offset <> '' && $offset > 0) {
      $this->dao->limit( $offset, $limit );
    } else {
      $this->dao->limit( $limit );
    }
  }


  $this->dao->orderby('t.d_datetime DESC');


  $result = $this->dao->get();
  if( !$result ) { return array(); }
  $prepare = $result->result();

  return $prepare;
}
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
только внутри запроса, приблизительно так
PHP:
$this->dao->where("
   (t.i_from_user_id = ".$user_id." and t.i_del_thread_from_status = 0) or
   (t.i_to_user_id = ".$user_id." and t.i_del_thread_to_status = 0)
");
 

Networx

Новичок
только внутри запроса, приблизительно так
PHP:
$this->dao->where("
   (t.i_from_user_id = ".$user_id." and t.i_del_thread_from_status = 0) or
   (t.i_to_user_id = ".$user_id." and t.i_del_thread_to_status = 0)
");
Супер, огромное спасибо! Оказывается все намного проще, чем я думал))) Даже самому теперь смешно, что не додумался до такого простого решения))) Еще раз спасибо!
 
Сверху