2017-05-28 12 views
1

私はエラーをどのように修正しましたか? "句が曖昧なところでコラム 'タイトル'":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

すべての3つのテーブルは同じ構造でなければなりません。つまり、同じ数のフィールドを持つ必要があります。それは...ですか? – AdhershMNair

+0

すべてのテーブルにはtitle、bodyがありますが、他のフィールドは異なります。 –

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

関連する問題