0

我是 CI 新手,我遇到了 MySQL 问题

表格1

id | house_id | 
1  |  1       | 
2  |  4       | 
3  |  3       | 

表2

house_id | image_name | 
4        |  a.jpg     | 
4        |  b.jpg     | 
3        |  c.jpg     | 

如何使用 CodeIgniter Active Record 类image_name为每个选择(独特地)?house_id

4

4 回答 4

3

http://codeigniter.com/user_guide/database/active_record.html 这是您正在寻找的 API$this->db->distinct();

于 2012-09-28T06:50:06.583 回答
1

只需在 codeigniter 模型中使用一个简单的方法 group_by

function get_house_image(){
$items = $this->db->select('house_id', 'image_name')
->from("table1")
->join("table2", "table1.house_id = table2.house_id")
->group_by("table1.house_id")  
->get();    
return $items->result_array();
}
于 2016-03-14T07:23:02.667 回答
0

在您的模型中

function get_house_image($id){
$this->db->where('house_id',$id);
$query = $this->db->get('table2');
return $query->result();
}

In your cotroller
function house($id){
$data['house'] = $this->your_model->get_house_image($id);
$this->load->view('your_view',$data);

在您看来 foreach 结果并使用它。这将获取您在 url 中传递的 id 的房子的图片。

于 2012-09-28T18:24:16.410 回答
0

您可以使用表的左连接来获取记录,如下所示:

$this->read->select('t1.house_id,t2.image_name');
 $this->read->join('table2 as t2','t1.house_id = t2.house_id','left');
 $result = $this->read->get('table1 as t1');
if($result){
      $data = $result->result_array();
      print_r($data);
}
于 2013-08-30T11:38:59.933 回答