Для каждого цикла не работает - PullRequest
3 голосов
/ 27 сентября 2011

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

Функция в контроллере:

function listdesignation($id) {
    $res = $this->designation_model->GetDesignation($id);
    $this->data['test'] = $res;
    if ($res) {
        foreach ($res as $row) {
            $this->data['selected_designation'] = $this->designation_model->GetDesignation_Names($row['designation_id']);
        }
        if ($this->data['selected_designation']) {
            $this->data['enable_view'] = true;
        }
    } 
}

Функция в модели:

function GetDesignation_Names($id) {
    $designation = array();
    $this->db->select('*');
    $this->db->from('delta_designation');
    $this->db->where('designation_id', $id);
    $query = $this->db->get();
    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $designation[$row->designation_id]['designation_id'] = $row->designation_id;
            $designation[$row->designation_id]['designation'] = $row->designation;
        }
        return $designation;
    }
    return false;
}

1 Ответ

2 голосов
/ 27 сентября 2011

Вы перезаписываете свою переменную с каждой итерацией в цикле foreach.Вы, вероятно, хотите создать массив вместо.

Например, вместо

foreach (...) {
    $myvar = $row->field;
}

Попробуйте это:

$myresult = array();
foreach (...) {
    $myvar = $row->field;
    $myresult[]= $myvar;  // (append to array)
}

Тогда вы можете:

foreach ($myresult as $onerow) {
    ...
}
...