2014-02-17 60 views
0

我有以下查詢:笨在哪裏,從以前的查詢

$this->db->where('user_id', $this->session->userdata('user_id')); 
$this->db->where('barcode != ""'); 
$codes = $this->db->get('acquisti')->result(); 
return $codes; 

這將產生一個結果(雜色山雀字段),可以顯示一個或多個記錄,我需要告訴笨顯示從另一個表的結果「條形碼」是上面找到的記錄之一。

我嘗試這樣做:

$this->db->where('user_id', $this->session->userdata('user_id')); 
$this->db->where('barcode != ""'); 
$codes = $this->db->get('acquisti')->result(); 

foreach ($codes as $key => $value) { 
    $this->db->where('IRSC', $value->barcode); 
    return $this->db->get('rendiconti_agosto')->result(); 
} 

但這僅返回一個結果,即使$code實際上是不止一個。

任何提示?

回答

3

試圖抓住他們array,然後返回他們像

foreach ($codes as $key => $value) { 
    $this->db->where('IRSC', $value->barcode); 
    $result_arr[] = $this->db->get('rendiconti_agosto')->result(); 
} 
return $result_arr; 

在你的代碼是循環的第一次返回,以便循環將首先停止,然後導致只有第一個結果是你得到。

0

試試這個。你可以做到沒有循環。

$this->db->select("*"); 
$this->db->from("acquisti a"); 
$this->db->join("rendiconti_agosto ra","ra.IRSC = a.barcode "); 
$this->db->where('a.user_id', $this->session->userdata('user_id')); 
$this->db->where('a.barcode <> ""'); 
$res = $this->db->get();  
return $res->result_array();