Codeigniter,从爆炸字符串中获取值

时间:2015-09-22 10:18:00

标签: php mysql codeigniter

我的数据库中有3个表:

t_keg:ID|keg_name|time_start|time_end|place
t_keg_detail:ID|keg_ID|int_audience|ext_audience
t_user:ID|name|

int_audience的值是字符串,它是来自t_user的ID。例:1001,1002,1003

到目前为止,我根据t_keg的ID生成了特定t_keg加入t_detail的视图。

ID|keg_name|time_start|time_end|int_audience|ext_audience
1|Workshop|2015-08-16|2015-08-20|1001,1002,1003|Phil, Harry, Duke

但是,我想根据int_audience的值从t_user获取名称的值。 所以,它看起来像:

1|Workshop|2015-08-16|2015-08-20|Linus, Snape, Dumbledore|Phil, Harry, Duke

请帮忙!

编辑: 对不起,忘了写爆炸部分。

我试图爆炸int_audience

$aud=$data[0]->int_audience;
$aud_res=explode(',',$aud);

其中$ data是select t_keg join t_keg_detail

中的数组

然后我使用foreach从t_user中选择id = $ aud_res

        foreach ($aud_res as $x) {
            $this->db->select('name');
            $this->db->from('t_users');
            $this->db->where('ID',$x);
            $query = $this->db->get()->result();
            $data['peserta']=$query;
        }
            print_r($data);

但是我只从int_audience(最后一个)获得一个名字。

我如何获得所有观众的名字?

并将它们放入$ data?

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你总是压倒价值

foreach ($aud_res as $x) {
     $this->db->select('name');
     $this->db->from('t_users');
     $this->db->where('ID',$x);
     $query = $this->db->get()->result();
     $data['peserta']=$query; //so you are putting the value in the same place

}    的print_r($数据);

所以试试这个

foreach ($aud_res as $x) {
         $this->db->select('name');
         $this->db->from('t_users');
         $this->db->where('ID',$x);
         $query = $this->db->get()->result();
         $data['peserta'][]=$query;
   }
print_r($data);

这样tou会添加值而不会告诉数组值是最后一行。

希望有所帮助