PHP ошибка обнаружена Codeigniter

кто-то из freelancer создал это веб-программное обеспечение для нас. По ошибке я удалил все медицинское обследование (я ассистент врача) с панели управления.
Программное обеспечение теперь дает мне эту ошибку:

Сообщение: неопределенная переменная: данные

Имя файла: models / gestione_model.РНР

Номер Строки: 127

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: недопустимый аргумент для foreach()

Имя файла: models / gestione_model.РНР

Номер Строки: 127

Обнаружена ошибка PHP

Серьезность: Уведомление

Сообщение: неопределенная переменная: данные

Имя файла: models / gestione_model.РНР

Номер Строки: 127

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: недопустимый аргумент для foreach()

Имя файла: models / gestione_model.РНР

Номер Строки: 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 ответа

  1. вы закрываете если перед foreach!

        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;
    
  2. Вы должны убедиться, что $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?
    }