2016-07-15 33 views
0

Vielleicht haben Sie eine Idee, wie ich `$ this-> lang 'entkommen kann. Dies ist meine eigentliche Abfrage:Codeigniter - Query Builder, linker Join, unvorbereitete PHP-Variable in 'on-Klausel'

$this->db->select('p.id, p.photo, p.desc, info.desc'); 
$this->db->from('products as p'); 
$this->db->join('lang_info as info', 'info.id=p.id and info.name=\'good\' info.lang='.$this->lang, 'left'); 
$this->db->join('lang_info as info2', 'info2.id=p.id and and info2.name=\'bad\' info2.lang='.$this->lang, 'left'); 
$this->db->where('p.id', $this->product_id); 

ich where Klausel nicht, weil ich weniger Ausgabezeilen bekommen können:

$this->db->where('info.lang', $this->lang); 
$this->db->where('info2.lang', $this->lang); 

ich so etwas wie $this->db->join_on('info.lang', $this->lang); müssen aber in codeigniter kann ich nicht etwas finden, wie diese

+0

W Hast du zwei und in deiner Join-Anweisung hinzugefügt? I.e 'info.id = p.id und und info.name = \' gut \ 'info.lang =' –

+0

aktualisiert: p es ist nur ein Beispiel, dieser Code wurde nicht getestet. Ich wollte mein Problem so einfach wie möglich zeigen –

Antwort

0

diese Abfrage:

$this->db->select('p.id, p.photo, p.desc, info.desc'); 
$this->db->from('products as p'); 
$this->db->join('lang_info as info', 'info.id=p.id and info.lang='.$this->lang, 'left'); 
$this->db->where('p.id', $this->product_id); 
$this->db->where_in('info.name', ['good', 'bad']);