2016-02-26 190 views
0

我在使用foreach循環時遇到了問題,它始終顯示警告:爲foreach()提供的無效參數,您可以查看並幫助我解決此問題。 這是我的控制器:無法運行foreach循環

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

這是我的模型:

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

這是我的觀點:

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

這是確定的時候$ud->status==1但它表明,當$ud->status==2一條警告消息。順便說一句,我使用codeigniter來開發我的網站,你能幫忙嗎?

回答

3

試試這個(添加上$ prod_errors/$ error_repairing檢查試圖重複之前)

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'; 
} 
+0

哦,也沒有任何數據現在發現,我卻用'$狀態插入數據==在1'我的數據庫,有什麼問題,你能幫助 –

+0

謝謝你,我確實發現我的問題。我忘記爲我正在尋找的產品插入數據,這很難解釋,因爲這裏的問題沒有數據顯示。 anw我修好了,謝謝 –

+0

我希望你不介意我編輯你的答案,以強調你所介紹的改動;-) – VolkerK