У меня есть приведенный ниже код одной из моих моделей. Я загружаю страницу с подробностями о предложении, и это дало мне ошибку
Severity: Notice
Message: Undefined index: viewc
Filename: statistics/Statistic_model.php
Line Number: 551
Статистическая_модель:
public function getTotalDetailsViewOfActiveOffer($comid) {
$this->db->select('count(statistic_offer_view_count.id) as viewc');
$this->db->from('statistic_offer_view_count');
$this->db->join('offers', 'offers.id = statistic_offer_view_count.offer_id');
$this->db->where('offers.com_id',$comid);
$this->db->where('offers.approved_status',"2");
$this->db->where('offers.enddate >=',date('Y-m-d'));
$this->db->group_by("offers.com_id");
$query = $this->db->get();
$row = $query->result_array();
$count=$row['viewc']; //this is line 551
}
Есть идеи, как исправить эту ошибку?



Эта ошибка означает, что индекса viewc нет в массиве $query->result_array(), скорее всего, из-за того, что ваш запрос завершился неудачно или вернул значение null. Вы должны выработать привычку делать:
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->row()->viewc;
}
return false; // or in this case 0 or whatever
В вашем коде вы выбираете данные из базы данных, состоящей из нескольких массивов, и присваиваете at переменной, как один массив. Ваш код....
$row = $query->result_array();
$count=$row['viewc'];
правильный способ присвоения переменной - это ....
$data = array();
foreah($row as $key => $value){
$data[$key] = $value['viewc'];
}