我收到以下消息:
遇到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';
}
}
我该如何解决?
答案 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();
可能是您的参数为空且没有从表中检索到记录的情况。