Php 将阵列从模型返回控制器codeigniter

Php 将阵列从模型返回控制器codeigniter,php,mysql,arrays,codeigniter,return,Php,Mysql,Arrays,Codeigniter,Return,我试图从数据库中查询两个值,使用两个不同的ID,我需要在一个数组中获得所有结果。这是我控制器的一部分 function account() { $user_id = $this->session->userdata('user_id'); $this->load->model("Site_model"); $q = $this->Site_model->get_all_notify($user_id); } 以下是模型: functi

我试图从数据库中查询两个值,使用两个不同的ID,我需要在一个数组中获得所有结果。这是我控制器的一部分

function account()
{
    $user_id = $this->session->userdata('user_id');
    $this->load->model("Site_model");
    $q = $this->Site_model->get_all_notify($user_id);
}
以下是模型:

function get_user_data_by_id($id) {
    $this->db->where("id",$id);
    $q=$this->db->get("users");
    return  $q->result();
}

function get_all_notify($user_id) {
    $this->db->where("wanted_id",$user_id);
    $this->db->where("requests_id",1);
    $q=$this->db->get("intrested");
    foreach($q->result() as $row) {
        $user=$this->get_user_data_by_id($row->users_id);
    }
    return $user;
}

但当我从控制器打印r$q时,我只得到1行。。。但是当我打印用户时,我得到了所有的结果!即使使用foreach,似乎也没有任何效果

您需要创建数组并将用户数据存储在其中,在当前代码中,将返回来自foreach的最后一次迭代数据

$user=array();
foreach($q->result() as $row)
{
        $user[]=$this->get_user_data_by_id($row->users_id);
}
return $user;

您需要创建数组并将用户数据存储在其中,在当前代码中,将返回来自foreach的最后一次迭代数据

$user=array();
foreach($q->result() as $row)
{
        $user[]=$this->get_user_data_by_id($row->users_id);
}
return $user;

在循环的每个迭代中,您都在覆盖
$user
。在循环的每个迭代中,您都在覆盖
$user
。这对控制器有效,但当我将从模型返回的变量传递给视图时,如($this->load->view(“include/template”,$data);当我试图在视图上查看它时,我无法访问任何索引,当我打印$r$data时,它会将正确的记录作为数组提供给我,但我需要用户名索引,我不能使用$data['username']或$data->username或$data[3]。我如何从该数组中获取任何值!!在
按id($id)
更改
$q->result()
$q->row();
如果每个通过的ID只有一个用户,非常感谢!我被困了5个小时,你节省了我的时间。但是我不明白怎么了!发送->row()或->result()有什么问题?@yasser如果你觉得这个答案很有帮助,那么@yasser
result()
将返回多个记录,每个记录n数组格式,
行()
将只给出一个对控制器有效的记录,但当我将从模型返回的变量传递到视图时,如($this->load->view(“include/template”,$data);当我试图在视图上查看它时,我无法访问任何索引,当我打印$r$data时,它会将正确的记录作为数组提供给我,但我需要用户名索引,我不能使用$data['username']或$data->username或$data[3]。我如何从该数组中获取任何值!!在
按id($id)
更改
$q->result()
$q->row();
如果每个通过的ID只有一个用户,非常感谢!我被困了5个小时,你节省了我的时间。但是我不明白怎么了!发送->row()或->result()有什么问题?@yasser如果你觉得这个答案很有帮助,那么@yasser
result()
将以数组格式返回多条记录,而
行()将只给出一条记录