如何连接表来显示多个数据?

时间:2014-04-11 09:36:46

标签: php mysql codeigniter

我是Codeigniter的新手。我有个问题 我有两个表设置主题

设置 ID,Set_name 主题 ID,subject_name ,SET_ID

我想在图片下面显示dara

I have to add data like below image

我使用了以下代码

控制器

$where=array('user_id'=>$this->session->userdata['logged_in']['id']); $val=array('id','set_name','desc','status'); $data['set']=$this->login->get_where2($val,$where,'q_set'); $select=array('id','name','set_id'); $data['sub']=$this->login->get_some($select,'subject'); $data['msg']=$this->session->flashdata('msg'); $this->load->view('admin/header'); $this->load->view('i_user/setlist',$data); $this->load->view('admin/sidebar');

视图

<tbody> <?php foreach($set as $setdata){?> <tr> <td class="center"><?php echo $setdata->set_name;?></td> <td class="center"><?php foreach($sub as $subdata){ if($subdata->set_id==$setdata->id){?><span class='subject'><?php echo $subdata->name;?></span><?php }}?><a href="<?php echo base_url()?>user/subject" style="float:right;">Add Subject</a></td> <td class="center"><?php if($setdata->status==1){echo 'Published';}else{echo 'Unpublished';}?></td> </tr> <?php }?> </tbody>

此代码运行良好,但我认为有一些不必要的循环正在运行以显示主题名称。有没有其他方法可以做到这一点?如果是,请建议。我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

设置列* Id,Set_name *和Subject有列* id,subject_name,set_id *`

$this->db->select('Set.Set_name,Subject.subject_name');
$this->db->from('Set');
$this->db->join('Subject','Subject.set_id=Set.id','left');
$query = $this->db->get();
return $query->run();

试试这个。它是两个表之间的左连接。