在codeigniter中检查它是否为空

时间:2015-06-26 13:01:54

标签: php codeigniter

我在codeigniter工作。我在模型中创建了一个函数。函数是这样的:

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";

    }

我的控制器是:

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

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

当我打印pr_detail然后它将显示如下输出:

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

它会提供空白数据,因此必须打印 123 ,但显示 nisarg

那么我应该怎么做才能打印 123

3 个答案:

答案 0 :(得分:5)

如果找不到结果,只需在模型文件中返回FALSE。同时使用CI select_max获取最大值

<强> 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";
}

答案 1 :(得分:2)

当您使用$ result-&gt; num_rows()&gt; 0你可以使用$ result-&gt; result()。如果你想要返回这些结果,你需要先检查它是否为空,然后再次查询以获得结果。

$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;

}

答案 2 :(得分:1)

你可以使用count函数吗?你在get函数中定义了一个表名吗?

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