0

我收到以下消息:

遇到 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';
}
}

我该如何解决?

4

3 回答 3

3

这是因为您的某些查询是空的。

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

第一的

于 2013-12-14T22:51:51.790 回答
0

在从中获取平均值之前尝试打印 $resultRes。

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

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

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

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

于 2013-11-08T12:54:07.303 回答
0

尝试

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

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

于 2013-11-08T12:40:40.523 回答