CODEIGNITER - 消息:尝试获取非对象的属性

时间:2013-11-08 12:37:31

标签: php codeigniter

我收到以下消息:

遇到PHP错误

严重性:注意

消息:尝试获取非对象的属性

文件名:models / usermodel.php

行号:4146

这是我的函数,其中第4146行是:

else if($resultRes->average<'3' &&  $resultRes->average>='2')

这是完整的功能代码。我对第4137,4140,4143,4146和4149行有相同的信息

function get_Ranking($resid=''){
$sql="select ((Qrating+Srating+Drating+Crating)/4) as average from testimonial where RestId=".$resid;
$query=$this->db->query($sql);
$resultRes=$query->row();
if($resultRes->average == '5'){
return '050';
}
else if($resultRes->average<'5' &&  $resultRes->average>='4'){
return '040';
}
else if($resultRes->average<'4' &&  $resultRes->average>='3'){
return '030';
}
else if($resultRes->average<'3' &&  $resultRes->average>='2'){
return '020';
}
else if($resultRes->average<'2' &&  $resultRes->average>='1'){
return '010';
}

else{
return '000';
}
}

我该如何解决?

3 个答案:

答案 0 :(得分:3)

这是因为你的一些查询是空的。

if($query->num_rows() != 0)

第一

答案 1 :(得分:0)

尝试

if($resultRes[0]['average'] == '5'){
    return '050';
}
else if($resultRes[0]['average'] < '5' &&  $resultRes[0]['average'] >= '4'){
    return '040';
}

由于它只返回一行,您可以直接使用$resultRes['average']

答案 2 :(得分:0)

尝试在获得平均值之前打印$ resultRes。

$resultRes=$query->row();
printr($resultRes);

还会打印上一个查询,并使用以下查询检查您的参数是否在查询中正确填充。

echo $this->db->last_query();

可能是您的参数为空且没有从表中检索到记录的情况。