Nisarg Bhavsar
Nisarg Bhavsar

Reputation: 956

Check it is empty or not in codeigniter

I am working in codeigniter.I have created one function in model.The function is like this :

function pr($id)
    {
        //$query5 = $this->db->query("select max(to_date) as last_date from agent_print_details where agent_id = ".$id);
        //$result5 = $query5->result();

        $this->db->select('max(to_date) as last_date');
        $this->db->from('agent_print_details');
        $this->db->where('agent_id',$id);

        $result = $this->db->get();

        if($result->num_rows()>0)

        return $result->result();

        else

        return "empty";

    }

my controller is :

$pr_detail = $this->cashier1_model->pr($role['id']);

if($pr_detail != 0)
{
    echo "nisarg";
}
else
{
    echo "123";
}

when I print pr_detail then it will display output like this:

Array ( [0] => stdClass Object ( [last_date] => ) ) 

it will give blank data so it has to print 123 but it is display nisarg.

So What should i have to do to print 123?

Upvotes: 3

Views: 16378

Answers (3)

When you use $result->num_rows() > 0 you CANT use $result->result(). If u want to return these results, you need to check if its not empty first, and then query again to get results.

$this->db->select_max('to_date','last_date');
$this->db->from('agent_print_details');
$this->db->where('agent_id', $id);
$result = $this->db->get();
if ($result->num_rows() > 0) {

   $this->db->select_max('to_date','last_date');
   $this->db->from('agent_print_details');
   $this->db->where('agent_id', $id);
   $result = $this->db->get();

   return $result->result();

} else {

    return FALSE;

}

Upvotes: 1

Isaac
Isaac

Reputation: 465

you could use count function, also, do you have defined a table name in get function?

...
$result = $this->db->get('agent_print_details');
//if($result->num_rows() > 0)
if(count($result) > 0)
...

Upvotes: 1

Saty
Saty

Reputation: 22532

If result not found just return FALSE in model file. Also use CI select_max to get max value

MODEL

$this->db->select_max('to_date','last_date');
$this->db->from('agent_print_details');
$this->db->where('agent_id', $id);
$result = $this->db->get();
if ($result->num_rows() > 0) {
    return $result->result();
} else {
    return FALSE;
}

CONTROLLER

$pr_detail = $this->cashier1_model->pr($role['id']);

if($pr_detail)
{
    echo "nisarg";
}
else
{
    echo "123";
}

Upvotes: 5

Related Questions