-1

我创建了一个外部函数(下面的代码),它计算平均评分,然后将该评分回显到动态表中的主页。此函数位于调用它的页面上的 do-while 循环内。我已将问题缩小到 msql_fetch_assoc 变量"$row_RatingResults"。在通过主页面循环的第一次迭代后,它不会返回有效变量,这意味着该函数返回的第一个值是正确计算的,但在通过循环的第一次迭代后,由于没有返回值,因此会出现除以零的错误$row_RatingResults。被调用的 $ID 变量来自主页(显然)并且本身来自mysql_fetch_assoc (i.e. $ID="rt_".$row_rsResults['outlineID'];) 代码粘贴在下面......这里的任何帮助将不胜感激。为了安全起见,我已经标记了一些地方,但知道这确实可以正确连接到 mysql。

<?php 
// contact to database
require_once('*****');
mysql_connect("localhost", "*****", "*****") or die ("Error , check your         server connection.");
mysql_select_db("*****");

require_once("*****");
    function CalculateRating($ID)
{

        $query_RatingResults = "SELECT * FROM rtgitems WHERE (item = '$ID')";
        $RatingResults = mysql_query($query_RatingResults) or die(mysql_error());
        $row_RatingResults = mysql_fetch_assoc($RatingResults);
    $TRate=$row_RatingResults['totalrate'];
    $NoRates=$row_RatingResults['nrrates'];
    $finalrate=$TRate/$NoRates;
    echo $finalrate;            
}
?>
4

2 回答 2

1

尝试这个

while($row_RatingResults = mysql_fetch_assoc($RatingResults)){
    $TRate=$row_RatingResults['totalrate'];
    $NoRates=$row_RatingResults['nrrates'];
    $finalrate=$TRate/$NoRates;
   echo $finalrate."<br>";
}
于 2013-05-02T05:54:24.370 回答
1

尝试这个:-

$query = sprintf("SELECT * FROM rtgitems WHERE (item = '%s')" , $ID);

$RatingResults = mysql_query($query) or die(mysql_error());

while($row_RatingResults = mysql_fetch_assoc($RatingResults)){
    $TRate=$row_RatingResults['totalrate'];
    $NoRates=$row_RatingResults['nrrates'];
    $finalrate=$TRate/$NoRates;
    $finalrate=$TRate/$NoRates;
    echo $finalrate; 
}
于 2013-05-02T05:58:38.090 回答