2012-06-14 3 views
0

В моей таблице у меня есть две строки, но когда я $data что эта функция модели связана с ней, она возвращает только вторую строку в db. Почему?Codeigniter result_array() возвращает одну строку

Модель Функция:

function getAllUsers() 
{ 
    $query = $this->db->get('users'); 

    foreach($query->result_array() as $row) 
    { 
     $row['id']; 
     $row['fName']; 
     $row['lName']; 
     $row['email']; 
     $row['password']; 
    } 

    return $row; 
} 

ответ

4

$row Поскольку это переменная цикла, она будет содержать только данные из последней итерации после того, как цикл завершился.

Делают это так:

function getAllUsers() 
{ 
    $rows = array(); //will hold all results 
    $query = $this->db->get('users'); 

    foreach($query->result_array() as $row) 
    {  
     $rows[] = $row; //add the fetched result to the result array; 
    } 

    return $rows; // returning rows, not row 
} 

В контроллере:

$data['users'] = $this->yourModel->getAllUsers(); 
$this->load->view('yourView',$data); 

По вашему мнению

//in your view, $users is an array. Iterate over it 

<?php foreach($users as $user) : ?> 

<p> Your first name is <?= $user['fName'] ?> </p> 

<?php endforeach; ?> 
+0

Спасибо, Как бы я получать данные из Посмотреть? До того, как я получил $ data ['blah'] = model_function, тогда в представлении у меня было $ blah ['table_name'] –

+0

@JessMcKenzie: См. Edit. – xbonez

+0

Спасибо @xbonez При использовании его с html то, что правильный синтаксис, когда вы используете