Query gives error: Trying to get property of non-object

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

Answers (2)

Abdul Kohar
Abdul Kohar

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

Niranjan N Raju
Niranjan N Raju

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

Related Questions