【问题标题】:How to join table to show multiple data?如何连接表格以显示多个数据?
【发布时间】:2014-04-11 09:36:45
【问题描述】:

我是 Codeigniter 的新手。我有个问题 我有两个表 SetSubject

Set 有列 Id, Set_name 并且 Subject 有列 id, subject_name ,set_id

我想将 dara 显示为下图

我使用了以下代码

控制器

$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>

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

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    Set 具有列 *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();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 2011-02-23
      • 2013-07-20
      • 1970-01-01
      • 2013-01-15
      相关资源
      最近更新 更多