Reputation: 1
I'm getting this error:
Trying to get property of non-object
when i try to search a student id number using CodeIgniter.
This is my controller code:
public function get_stud_info($id = "")
{
$stud_info = $this->m_stud_info->get_by_ID($id);
$data['IDno'] = $stud_info->IDno;
$data['LName'] = $stud_info->LName;
$data['FName'] = $stud_info->FName;
$data['Course'] = $stud_info->Course;
$data['Year'] = $stud_info->Year;
$data['Club_num'] = $stud_info->Club_num;
$this->load->view('view_stud_info', $data);
}
This is my model code:
public function get_by_ID($ID)
{
$query = $this->db->where('IDno', $ID)->limit(1)->get('stud_info');
if($query->num_rows() > 0)
{
return $query->row();
}
else
{
return array();
}
}
This is my view code:
<?php
echo "IDNo: $IDno <br/>" ;
echo "LName: $LName <br/>" ;
echo "FName: $FName <br/>" ;
echo "Course: $Course <br/>" ;
echo "Year: $Year <br/>" ;
echo "Club_num: $Club_num <br/>" ;
?>
Upvotes: 0
Views: 51
Reputation: 37
How about this, i think it would be more simple and easier for you.
$stud_info = $this->m_stud_info->get_by_ID($id);
if($stud_info) {
$data['IDno'] = isset($stud_info->IDno) ? $stud_info->IDno : '';
...
}
Upvotes: 0
Reputation: 11987
The error will come when model return empty array for you, so check if the model is returning any value before you access it.
$stud_info = $this->m_stud_info->get_by_ID($id);
if($stud_info) {
$data['IDno'] = $stud_info->IDno;
$data['LName'] = $stud_info->LName;
$data['FName'] = $stud_info->FName;
$data['Course'] = $stud_info->Course;
$data['Year'] = $stud_info->Year;
$data['Club_num'] = $stud_info->Club_num;
} else {
// assign all values to null here
$data['IDno'] = "";
...
}
Upvotes: 1