2013-12-17 2 views
1

Я пытаюсь запросить два значения из базы данных с двумя разными идентификаторами, и мне нужно получить все результаты в одном массиве. Это часть моего контроллера.возвращающий массив от Model to Controller codeigniter

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; 
} 

Но когда я print_r $ Q от контроллера я получаю только 1 строку ... но когда я print_r $ пользователя Я получаю все результаты! Даже с foreach ничего не работает!

+0

Вы * перезапись * '$ user' на каждой итерации цикла вашего , –

ответ

4

Вам нужно сделать массив и хранить данные пользователей в том, что в текущем коде последней итерации данные Еогеасп будут возвращать

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

, который работал для контроллера, но когда я передал эту переменную, которая вернулась из модели, чтобы посмотреть ($ this-> load-> view ("include/template", $ data), когда я пытаюсь ее просмотреть, я могу " t доступ к любым индексам, когда I print_r $ data дает мне правильную запись в виде массива, но мне нужен индекс имени пользователя, я не могу использовать $ data ['username'] или $ data-> username или $ data [3 ]. Как получить любые значения из этого массива? – yasser

+0

В 'get_user_data_by_id ($ id)' change '$ q-> result();' to '$ q-> row();' если есть только один пользователь за пройденный id –

+1

Большое спасибо! Я застрял в течение 5 часов, когда вы спасли мои дни. Я не понимаю, что было не так, хотя! что не так -> row() или -> result()? – yasser