У меня есть три таблицы: 'users', 'products' и 'product_types'. В таблице «пользователи» хранятся все обычные данные о пользователях моего сайта (включая столбец id
); в таблице «products» перечислены product_id
продукта, user_id
пользователя, добавившего его, и product_type
; таблица «product_types» имеет столбец id
(что соответствует значению product_type
int в таблице «products») и столбец varchar name
.
Я хочу выполнить поиск %like%
в таблице «пользователи», чтобы при поиске пользователем типов продуктов отображались все пользователи, у которых есть продукты, соответствующие поисковому типу продукта. Вот что я сейчас использую в своей модели CodeIgniter:
$string = urldecode($string);
$this->db->select('users.*');
$this->db->from('users');
$this->db->like('users.company_name',$string,'both');
$this->db->or_like('users.address_1',$string,'both');
$this->db->or_like('users.city',$string,'both');
$this->db->or_like('users.contact',$string,'both');
$this->db->or_like('product_types.name',$string,'both');
$this->db->join('products','users.id = products.client_id');
$this->db->join('product_types','products.product_type = product_types.id');
$this->db->distinct();
$users = $this->db->get();
foreach($users->result() as $user){
// search result
}
Затем я передаю это в оператор foreach ... Но большую часть времени он показывает только первую строку - в других случаях он возвращается без результатов. Кто-нибудь может сказать мне, где я иду не так?