Проблема при извлечении данных из объединенных таблиц

#php #codeigniter #codeigniter-3

#php #codeigniter #codeigniter-3

Вопрос:

В моей базе данных есть четыре таблицы с именами ‘user_login’, ‘store’, ‘admin’, ‘store_product’. когда я пытаюсь извлечь данные из таблицы user_login, это не работает. Мои коды, как показано ниже:

Форма просмотра:

  <form method="get">
Enter city: <input type ="text" name="city">
Enter search keyword: <input type="text" name="searchB">
<button type="submit"> Submit </button>
</form>
  

Контроллер:

 public function search()
{
    $this->load->model('searchmodel');
    $fc = $this->input->get('city');
    $sb = $this->input->get('searchB');
    $rr=$this->searchmodel->searchDetail($sb,$fc);
    $data['results'] = $rr;
    $this->load->view('search/detailResults',$data);
}
  

Модель

 public function searchDetail($data,$datacity){
     $this->db->select();
     $this->db->from('user_login');
     $this->db->join('store', 'store.vendor_bri = user_login.bri', 'full outer');        
     $this->db->join('admin', 'admin.bri = user_login.bri', 'full outer');       
     $this->db->join('store_product', 'store_product.vendor_bri = user_login.bri', 'full outer');

     $this->db->having('store.town', $datacity);
     $this->db->or_having('store.country', $datacity);
     $this->db->like('user_login.business_name',$data, 'both');
     $this->db->or_like('user_login.business_type', $data);
     $this->db->or_like('user_login.speciality', $data);
     $this->db->or_like('store.locality', $data);        
     $this->db->or_like('store.vendor_bri', $data,'none');
     $this->db->or_like('store_product.pd_universal_code', $data,'none');
     $this->db->or_like('store_product.pd_name', $data);
     $this->db->or_like('store_product.pd_description', $data);
     $query = $this->db->get();
     return $query->result_array(); 

}
  

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

1. Есть ли какие-либо ошибки?

2. Ошибки нет. это дает результат, если доступно более одного объекта. это означает, что если ‘John’ доступен в двух или более строках, то это дает результат, но если ‘John’ доступен в одной строке, то это не дает никакого результата.