2011-09-27 7 views
3

일부 마스터 범주와 사용자 그룹이 있습니다. 사용자 그룹은 마스터 범주에 할당되어 있습니다. 다음 코드를 사용하고 있지만 모든 일치하는 레코드를 표시해야하는 동안 테이블의 마지막 레코드 만 표시합니다. 컨트롤러각 루프가 작동하지 않습니다.

기능 : 모델

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

답변

2

당신은 당신의 foreach 루프를 통해 각 반복하여 변수를 덮어 쓰는 것입니다. 대신에 배열을 구축하는 것이 좋습니다.

예. 대신

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

의이 시도 : 다음

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

을 수행 할 수 있습니다

foreach ($myresult as $onerow) { 
    ... 
} 
관련 문제