我在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 ?
答案 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)
...