我有以下查询:
$this->db->where('user_id', $this->session->userdata('user_id'));
$this->db->where('barcode != ""');
$codes = $this->db->get('acquisti')->result();
return $codes;
这会产生一个可以显示一条或多条记录的结果(varius字段),我需要告诉Codeigniter从另一个表中显示“条形码”是上面记录之一的结果。
我试过了:
$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
实际上不止一个,这也只返回一个结果。
任何提示?
答案 0 :(得分:3)
尝试在array
中抓住它们,然后像
foreach ($codes as $key => $value) {
$this->db->where('IRSC', $value->barcode);
$result_arr[] = $this->db->get('rendiconti_agosto')->result();
}
return $result_arr;
在你的代码中,你是第一次循环返回,所以循环将首先终止,然后只得到你得到的第一个结果。
答案 1 :(得分: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();