10/10/2018, 10:50
Nhờ cao thủ CodeIgniter giúp đỡ
Ví dụ mình có 3 table trong CSDL
Câu lệnh SQL bình thường để lấy ra thông tin news_art_title, news_cat_name, news_sec_name từ 3 tabale trên là
Mình hỏi vậy trong CodeIgniter muốn làm công việc như trên thì phải viết như nào?
Mình đã viết như vầy trong CodeIgniter
Mặc dù không báo lỗi nhưng cũng không get được data. Bạn nào biết giúp mình với, Mình cám ơn nhiều !
Code:
news_section(news_sec_id, news_sec_name); news_category(news_cat_id, news_sec_id, news_cat_name); news_article(news_art_id, news_cat_id, news_art_title);
PHP Code:
SELECT news_art_title, news_cat_name, news_sec_name
FROM news_section, news_category, news_article
WHERE news_article.news_cat_id = news_category.news_cat_id
AND news_category.news_sec_id = news_section.news_sec_id
Mình đã viết như vầy trong CodeIgniter
PHP Code:
$this->load->database();
$this->db->select('news_art_title, news_cat_name, news_sec_name');
$this->db->from('news_article, news_category, news_section');
$this->db->where('news_article.news_cat_id', 'news_category.news_cat_id');
$this->db->where('news_category.news_sec_id', 'news_section.news_sec_id');
$this->db->limit(5);
$query = $this->db->get();
return $query->result();
Bài liên quan
Thứ 2 là bạn cố tình viết sai 1 tên field trong câu select xem => lúc đó nó lỗi và xuất ra câu truy vấn được class DB của CI nó render ra. Đối chiếu xem có đúng như câu truy vấn bạn mong muốn hay không.
Thứ 3 nếu trường hợp trên bạn nên viết như sau:
$this->load->database();
$this->db->select('A.news_art_title, B.news_cat_name, C.news_sec_name');
$this->db->from('news_article A');
$this->db->join('news_category B', 'A.news_cat_id = B.news_cat_id');
$this->db->join('news_section C', 'B.news_sec_id = C.news_sec_id');
$this->db->limit(5);
$query = $this->db->get();
return $query->result();
$this->load->database();
$this->db->select('A.news_art_title, B.news_cat_name, C.news_sec_name');
$this->db->from('news_article A');
$this->db->join('news_category B', 'A.news_cat_id = B.news_cat_id');
$this->db->join('news_section C', 'B.news_sec_id = C.news_sec_id');
$this->db->limit(5);
$query = $this->db->get();
return $query->result();
$sql = "SELECT news_art_title, news_cat_name, news_sec_name
FROM news_section, news_category, news_article
WHERE news_article.news_cat_id = news_category.news_cat_id
AND news_category.news_sec_id = news_section.news_sec_id ";
return $this->db->query($sql)->result();
Nếu vẫn ra thì xem kỹ lại phần bạn sô ra ở view coi có nhầm lẫn gì không (Tốt nhất bỏ đoạn đó lên đây nốt đi).
$this->load->database();
$this->db->select('A.news_art_title, B.news_cat_name, C.news_sec_name');
$this->db->from('news_article A');
$this->db->join('news_category B', 'A.news_cat_id = B.news_cat_id');
$this->db->join('news_section C', 'B.news_sec_id = C.news_sec_id');
$this->db->where('C.news_sec_id', 2);
$this->db->limit(5);
$query = $this->db->get();
return $query->result();