在codeigniter

时间:2016-01-09 04:37:22

标签: php arrays codeigniter

这是我输出的问题我希望从这个数组中获取所有reciver_id索引,并且在获得所有索引之后我想从另一个表用户获取这些id的结果

$data['cat_row']        =       $this->messages_model->get_sentnotify($user_id);
        foreach($data['cat_row'] as $key){
            $profile    =   $key['reciver_id'];
        }
 $data['profile']        =       $this->messages_model->Sender_profile($profile);

通过这段代码,我只得到第一个索引的1个值如何获得所有... 得到所有我想从其他表中获取每个id的用户

function Sender_profile($profile)
    {
        $this->db->where('id', $profile);
        $query = $this->db->get($this->db_table2);
        return $query->result_array();
    }

请帮助我了解sql如何在一次迭代中从数据库中获取所有值 enter image description here

2 个答案:

答案 0 :(得分:2)

代码第1部分

在数组中获取所有 reciver_id ,如下所示:

$data['cat_row'] = $this->messages_model->get_sentnotify($user_id);

$profile = [];

foreach($data['cat_row'] as $key){

  array_push($profile, $key['reciver_id']);

}

$data['profile'] = $this->messages_model->Sender_profile($profile);

代码第2部分

使用Codeigniter的 where_in()功能。

function Sender_profile($profile) {

  $this->db->where_in('id', $profile);

  $query = $this->db->get($this->db_table2);

  return $query->result_array();

}

答案 1 :(得分:0)

在你的控制器中,你需要访问所有的receiver_id然后修改你的foreach循环:

import.reload()

现在你在$ profile数组中拥有所有的receiver_id。并在控制器函数中传递此数组,并应该像这样查询:

$i=0;
foreach($data['cat_row'] as $key){
        $profile[$i]    =   $key['reciver_id'];
        $i++;
    }