2015-09-24 2 views
1

Так что я пытался вытащить все имена из всех пользователей из базы данных, но я получаю только один, в этом случае первый результат, который он находит в таблице. Вот код, который я пытаюсь:Codeigniter ActiveRecord не показывает всех результатов

public function getAllUsers(){ 

    $query = $this->db->get('user'); 
    $result = $query->result(); 

    foreach ($result as $record) 
    { 
     return $record->name; 
    } 

} 

Я уже пробовал много проверок, но безрезультатно. Я использую var_dump для отображения его в представлении. Я уже пытался зацикливать его в vewi тоже, но ничего не происходит. Любая помощь?

EDIT [РЕШИТЬ]: в цикле, в этом случае будет цикл и принести все записи, но как только это будет сделано все данные будут потеряны так, чтобы сохранить данные, я предложил создать пустой массив первых, затем установите данные в массив в цикле и затем верните этот массив после завершения цикла. Благодаря!

ответ

4

Ваш цикл foreach работает только один раз и возвращает данные. Вы должны хранить данные в массив и результат

$data=array(); // define empty array 
foreach ($result as $record) 
    { 
     $data[]= $record->name;// assign name to array 
    } 
    return $data;// return data 
+0

Я пробовал, но это приносит только последнюю запись в таблице :( – syrano

+0

Да, спасибо, ребята! это работает! Не уверен, почему, почему, почему это работает? – syrano

+0

После возвращаемого типа каждая вещь исчезает. Вам нужно сохранить данные в массиве и вернуть их после цикла. – Saty

2

попробовать это:

public function getAllUsers(){ 
    $query = $this->db->get('user'); 
    $result = $query->result(); 
    $name = array(); 
    foreach ($result as $record) 
    { 
     $name[] = $record->name; 
    } 
    return $name ; 

} 
+0

Большое спасибо! тот же ответ в то же время :) любое объяснение? – syrano

+0

вы возвращали '$ record-> name;' поэтому для первой записи функция вернула первое значение, и цикл не смог продолжить. – Mohan

Смежные вопросы