douxianwu2221 2016-02-26 03:54
浏览 49
已采纳

无法运行foreach循环

i have a trouble with my foreach loop, it always shows warning that is: Invalid argument supplied for foreach(), can you have a look and help me solve this problem. This is my controller:

function prod_detail($id_sp){
    $this->load->model('product_model');
    $data['prod_detail'] = $this->product_model->getProdDetailByProdId($id_sp);
    $data['prod_errors'] = $this->product_model->getProdDataError($id_sp);
    $data['error_repairing'] = $this->product_model->getProdDataErrorRepairing($id_sp);
    $data['rows']= $this->membership_model->getUserData();
    $data['main_content'] = 'backend/home/manproduct/prod_detail_view';
    $this->load->view('includes/admin/template', $data);
}

This is my model:

function getProdDataError($id_sp){
    $this->db->where('id_sp', $id_sp);
    $this->db->where('status', 0);
    $query = $this->db->get('loi');
    if($query->num_rows()>0){
        foreach ($query->result() as $row){
            $data[]=$row;
        }
        return $data;
    }
}
function getProdDataErrorRepairing($id_sp){
    $this->db->where('id_sp', $id_sp);
    $this->db->where('status', 1);
    $query = $this->db->get('loi');
    if($query->num_rows()>0){
        foreach ($query->result() as $row){
            $data[]=$row;
        }
        return $data;
    }
}

And here is my view:

if($ud->status==0){
                echo 'Hoạt động';
            }else if($ud->status==1){
             echo '<b>Lỗi<br><ul></b>';
             foreach ($prod_errors as $err) {
                 echo '<li>'.$err->ten_loi.'</li>';
             }
             echo '</ul>';
         }else if($ud->status==2){
             echo '<b>Đang sửa lỗi<br><ul></b>';
             foreach ($error_repairing as $err) {
                 echo '<li>'.$err->ten_loi.'</li>';
             }
             echo '</ul>';
         }else if($ud->status==3){
             echo 'Chưa lắp đặt';
         }

It's ok when $ud->status==1 but it shows a warning message when $ud->status==2. btw, i use codeigniter to develop my web, can you help?

  • 写回答

1条回答 默认 最新

  • duanrong0738 2016-02-26 04:16
    关注

    try this (adding checks on $prod_errors/$error_repairing before trying to iterate them)

    if($ud->status==0)
    {
                    echo 'Hoạt động';
    }else if($ud->status==1)
    {
        echo '<b>Lỗi<br><ul></b>';
        // first check $prod_errors exists and is not null before iterating it
        if (isset($prod_errors)) 
        {
            foreach ($prod_errors as $err) 
            {
                 echo '<li>'.$err->ten_loi.'</li>';
            }
        }
        else{
            echo "No Data found";
        }
        echo '</ul>';
    }else if($ud->status==2)
    {
        echo '<b>Đang sửa lỗi<br><ul></b>';
        // first check $error_repairing exists and is not null before iterating it
        if (isset($error_repairing)) 
        {
            foreach ($error_repairing as $err)
            {
                 echo '<li>'.$err->ten_loi.'</li>';
            }
        }
        else{
            echo "No Data found";
        }
        echo '</ul>';
    }else if($ud->status==3)
    {
         echo 'Chưa lắp đặt';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大