我正在尝试从两个表,user和meta中检索信息。但是,我只获得第一行而不是所有这些。
用户表看起来像这样
ID | Display Name | Email
1 | Test | test@test.com
Meta表看起来像这样
meta_id | user_id | meta_key | meta_value
123 | 1 | address | 123 somewhere
123 | 1 | city | Metropolis
这是我的查询
$query = $this->db->from('users as u');
$query = $this->db->join('meta as m', 'u.ID = m.user_id');
$query = $this->db->where('ID', $data['ID']);
$query = $this->db->get();
return $query->row_array();
但是我获得了用户表的所有内容,但只获得了元表的第一行。尝试在元表中获取与user_id = 1匹配的所有行。
为了让它起作用,我错过了什么?
答案 0 :(得分:1)
您想要检索查询的所有结果还是只检索第一行?
$query = $this->db->from('users as u');
$query = $this->db->join('meta as m', 'u.ID = m.user_id');
$query = $this->db->where('ID', $data['ID']);
$query = $this->db->get();
只使用一个结果:
row_array()
返回单个结果行。如果您的查询有多行,则只返回第一行。结果以数组形式返回。
return $query->row_array();
获取结果数组使用:
result_array()
方法以纯数组
return $query->result_array();
答案 1 :(得分:0)
试试这个。希望它可能会有所帮助
$this->db->select('u.*, m.*');
$this->db->from('users as u');
$this->db->join('meta as m', 'u.ID = m.user_id');
$this->db->where('u.ID', $data['ID']);
$query = $this->db->get();
return $query->row_array();
答案 2 :(得分:0)
$this->db->reset_query();
$this->db->select("*");
$this->db->from('user');
$this->db->join('meta', 'user.id = meta.id ' );
$this->db->where('user.id="'. $data['ID'].'"'); // where conditions
$query = $this->db->get();
return $query->result();