我创建了一个外部函数(下面的代码)来计算平均评级,然后将该评级回显到动态表格中的主页面。此函数位于调用它的页面上的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;
}
?>
答案 0 :(得分:1)
试试这个
while($row_RatingResults = mysql_fetch_assoc($RatingResults)){
$TRate=$row_RatingResults['totalrate'];
$NoRates=$row_RatingResults['nrrates'];
$finalrate=$TRate/$NoRates;
echo $finalrate."<br>";
}
答案 1 :(得分: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;
}