从MySQL查询创建一个数组,平均该数组的值,然后将该平均值向上舍入

时间:2012-11-24 20:05:20

标签: php mysql arrays

确定。这是我到目前为止的代码......

mysql_query($userrating);
$userratingquery =  "SELECT rating FROM user_rating WHERE user_id=$sellerid";
$userrating = mysql_query($userratingquery) or die('SQL Error :: '.mysql_error());
$userrating = array();

while(($row =  mysql_fetch_assoc($userrating))) {
   $rating[] = $row['rating'];
}

if (!empty($userrating)) {
   $averagerating = array_sum($userratingary); 
   print_r($userratingary);
} else {
   echo '<img src="images/star.png" class="ratingstar" /><img src="images/star.png" class="ratingstar" /><img src="images/halfstar.png" class="ratingstar" />';
}

我要做的是创建一个名为“rating”的数据库值数组,对该数组中的值进行平均,然后我想将这些值向上舍入。因此,例如,如果这些值的平均值最终为3.7,则平均值将变为4。

从那里我可以将结果应用到代码中...我现在正在使用我的阵列遇到很多麻烦。我现在得到的错误是......

  

警告:mysql_fetch_assoc():提供的参数不是有效的MySQL   

中的结果资源

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

你的问题在这里:

$userrating = mysql_query($userratingquery) or die('SQL Error :: '.mysql_error());
$userrating = array();

您正在将$ userrating变量重置为数组,因此当您尝试获取mysql行时,$ userrating mysql结果不再有效。

为$ userrating数组使用不同的变量名,或者为mysql结果使用另一个变量名。