2017-05-28 1 views
1

Ich habe Fehler, wie das zu beheben? "Spalte 'Titel' in where-Klausel ist nicht eindeutig":Wie erhalten Daten aus 3 Tabellen? Funktion

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(); 

Antwort

0

Haben Sie einen Versuch mit

<?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

keine Fehler, aber 0 Ergebnisse .. –

+0

Alle drei Tabellen müssen dieselbe Struktur haben, dh sie müssen die gleiche Anzahl von Feldern haben. Ist es? – AdhershMNair

+0

Alle Tabellen haben Titel, Körper aber andere Felder sind unterschiedlich. –

0

diesen Code Versuchen:

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

zeigt dann Ergebnisse aus der letzten Tabelle in Array und wiederholt 3 mal .. http://prntscr.com/fdwuha –

+0

Versuchen Sie den aktualisierten Code. Setzen Sie jeden Suchbegriff in die Gruppe() wie oben. – Shihas

Verwandte Themen