2016-10-20 2 views
0

Ich bekam Probleme beim Versuch, Daten aus zwei MySQL-Tabelle zu bekommen. In der ersten Tabelle speicherte ich Bilddateiname; in der zweiten Tabelle habe ich Informationen über jedes Bild gespeichert; info sind in zwei Sprachen, en und it. Natürlich haben nicht alle Bilder in der ersten Tabelle Informationen in der zweiten. Ich versuche Bilder eine Info für eine ausgewählte Sprache in der folgenden Art und Weise zu erhalten:Where-Klausel in Codeigeiter Query Builder-Klasse

$this->db->select (' 
      tbl_images.image, 
      tbl_infos.info 
      '); 

$this->db->from('tbl_images'); 
$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id', 'left'); 
$this->db->where('tbl_images.id', $id); 
$this->db->where('tbl_infos.lang', 'en'); 

Nun ... wenn die tbl_infos Tabelle hat Text, die Abfrage korrekte Daten Rückkehr, aber wenn keine Meldung I gespeichert einen Fehler erhalten, da keine Bilder abgerufen werden; wenn ich die lang where-Klausel entferne, bekomme ich die iamge, wenn keine info gespeichert sind ... aber ich bekomme Bilder mit info zweimal !!

Ich bin verrückt und völlig auf diesem ... wie kann ich das beheben? Vielen Dank

Antwort

0

versuchen diese

$ this-> db-> join ('tbl_infos', 'tbl_images.id = tbl_infos.id');

0

Silly me ... Ich habe behoben die zweite Bedingung in der gleichen JOIN Zeile schreiben. Also, folgendes JOIN:

$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id', 'left'); 

wird:

$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id AND tbl_infos.lang = "en"', 'left');