【问题标题】:For each loop not working对于每个循环不起作用
【发布时间】:2011-09-27 04:26:43
【问题描述】:

我有一些主类别和用户组,用户组被分配到主类别。我正在使用以下代码,但它只显示表中的最后一条记录,而我需要显示所有匹配的记录。

控制器中的功能:

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

【问题讨论】:

    标签: php codeigniter foreach-loop-container


    【解决方案1】:

    您正在通过foreach 循环的每次迭代覆盖您的变量。你可能想建立一个数组。

    例如而不是

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

    试试这个:

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

    那么你可以:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      相关资源
      最近更新 更多