我有一些主类别和用户组,用户组被分配到主类别。我正在使用以下代码,但它只显示表中的最后一条记录,而我需要显示所有匹配的记录。
控制器中的功能:
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;
}
答案 0 :(得分:2)
通过foreach
循环,每次迭代都会覆盖变量。你可能想要建立一个数组。
E.g。而不是
foreach (...) {
$myvar = $row->field;
}
试试这个:
$myresult = array();
foreach (...) {
$myvar = $row->field;
$myresult[]= $myvar; // (append to array)
}
然后你可以:
foreach ($myresult as $onerow) {
...
}