Это потому, что когда вы запускаете код:
$query = $this->db->get_where('mytable', array("id =" => $id));
if($query->num_rows() > 0){
return $query->result_array();
}else {
return false;
}
когда нет возвращаемых строк, приведенный выше код работает нормально, он просто не работает в представлении, где вы пытаетесь запустить цикл for.
Этот цикл for не должен выполняться, если не возвращены строки. тем не менее вы пытаетесь запустить forloop, даже если нет строк для работы.
Мое предложение - изменить код следующим образом:
$ query = $ this-> db-> get_where ('mytable', array ("id =" => $ id));
if($query->num_rows() > 0){
return $query->result_array();
}else {
$noResults = true;
}
в представлении у вас будет что-то подобное перед циклом for:
if($noResults != true){
foreach($currentitems as $row){
echo $row['name']
///....do more
}
}
else{
//do something
echo "No items in database!";
}
Надеюсь, это поможет.
PK