"Invalid argument supplied for foreach()" error when no rows from CodeIgniter model method
I have an issue with my foreach loop; it always shows warning that is:
Invalid argument supplied for foreach()
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';
} elseif ($ud->status == 1) {
echo 'Lỗi
';
foreach ($prod_errors as $err) {
echo '' . $err->ten_loi . ' ';
}
echo '';
} elseif ($ud->status == 2) {
echo 'Đang sửa lỗi
';
foreach ($error_repairing as $err) {
echo '' . $err->ten_loi . ' ';
}
echo '';
} elseif ($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. By the way, I use CodeIgniter to develop my application.