2017-05-28 74 views
1

我有錯誤怎麼修復? 「在where子句是不明確的列 '標題'」:如何從3個表中獲取數據?函數

get_results_from($search_term='default') 
    $targets=array('a_table','b_table','c_table'); 
    $this->db->select('*'); 
    $this->db->from($targets); 
    $this->db->like('title',$search_term); 
    $this->db->or_like('body', $search_term); 
    $query = $this->db->get(); 
    return $query->result_array(); 

回答

0

<?php 
get_results_from($search_term='default'); 
$sql = "SELECT * from a_table where `title` LIKE '%".$search_term."%' OR `body` LIKE '%".$search_term."%' 
     UNION 
     SELECT * from b_table where `title` LIKE '%".$search_term."%' OR `body` LIKE '%".$search_term."%' 
     UNION 
     SELECT * from c_table where `title` LIKE '%".$search_term."%' OR `body` LIKE '%".$search_term."%' "; 
$query = $this->db->query($sql); 
return $query->result_array(); 
?> 
+0

沒有錯誤,但結果0 .. –

+0

所有這三個表格必須具有相同的結構,即它們必須具有相同數量的字段。是嗎? – AdhershMNair

+0

所有表格都有標題,正文但其他字段不同。 –

0

一個試試這個代碼:

function get_results_from($search_term='default') 
{ 
    $targets=array('a_table','b_table','c_table'); 
    $this->db->select('*'); 
    $this->db->from($targets); 
    $this->db->group_start(); 
     $this->db->like('a_table.title',$search_term); 
     $this->db->or_like('b_table.title',$search_term); 
     $this->db->or_like('c_table.title',$search_term); 
     $this->db->or_like('body', $search_term); 
    $this->db->group_end(); 
    $query = $this->db->get(); 
    return $query->result_array(); 
} 
+0

然後顯示數組中最後一個表的結果並重復3次。http://prntscr.com/fdwuha –

+0

嘗試更新的代碼。如上所述將每個search_term放入group()中。 – Shihas