遇到PHP错误Codeigniter

时间:2016-05-25 15:26:13

标签: php codeigniter

来自自由职业者的人为我们创建了这个基于Web的软件。我错误地从控制面板上删除了所有的体检(我是医生助理)。 该软件现在给我这个错误:

  

消息:未定义的变量:数据

     

文件名:models / gestione_model.php

     

行号:127

     

遇到PHP错误

     

严重性:警告

     

消息:为foreach()提供的参数无效

     

文件名:models / gestione_model.php

     

行号:127

     

遇到PHP错误

     

严重性:注意

     

消息:未定义的变量:数据

     

文件名:models / gestione_model.php

     

行号:127

     

遇到PHP错误

     

严重性:警告

     

消息:为foreach()提供的参数无效

     

文件名:models / gestione_model.php

     

行号:127

我在这里找到第27行:

public function conta_visite($s)
{
    $query = $this->db->get('oggetti');
    if ($query->num_rows() > 0) {
        $data = $query->result_array();
    }
    $aperte = 0;
    $chiuse = 0;
    foreach ($data as $d) {

        if (new DateTime() > new DateTime($d['DataVisita'])) $chiuse++;
        else $aperte++;
    }

    if($s == 1) return $aperte;
    else return $chiuse;
}
是的,有人能帮帮我吗?感谢

2 个答案:

答案 0 :(得分:0)

你在foreach之前关闭IF!

    public function conta_visite($s) { 
$query = $this->db->get('oggetti'); 
if ($query->num_rows() > 0) { 
 $data = $query->result_array(); 
} // HERE if result is ==0 then $data does not exist

$aperte = 0; $chiuse = 0; foreach ($data as $d) {

        if (new DateTime() > new DateTime($d['DataVisita'])) $chiuse++;
        else $aperte++;
    }

    if($s == 1) return $aperte;
    else return $chiuse;

答案 1 :(得分:0)

在使用之前,您需要确保$data已设置。如果没有返回任何行,则表示未设置$data,并且在尝试处理时会出错。

if ($query->num_rows() > 0) {
    $data = $query->result_array();
} else {
   //do what needs to be done if the database does not return any rows
    $data = array(); //empty array maybe?
}