2013-05-02 36 views
-1

我創建了一個外部函數(代碼如下),它計算平均評分,然後將該評分反饋回動態表中的主頁面。該函數位於正在調用它的頁面上的do-while循環內部。我已將問題縮小到msql_fetch_assoc變量"$row_RatingResults"。在第一次循環通過主頁面循環後,它不會返回一個有效變量,這意味着該函數返回的第一個值可以正確計算,但在循環的第一次迭代之後,會有一個除零錯誤,因爲$row_RatingResults不返回任何值。被調用的$ ID變量來自主頁面(顯然),它本身來自mysql_fetch_assoc (i.e. $ID="rt_".$row_rsResults['outlineID'];)代碼被粘貼在下面...任何幫助在這裏將不勝感激。我出於安全目的出演了一些地方,但知道這確實連接到了mysql。mysql_fetch_assoc在第一個循環之後沒有返回任何值

<?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

,你必須使用循環? – 2013-05-02 05:51:38

+3

曾聽說過段落和格式?使得閱讀文本牆更加困難 – asprin 2013-05-02 05:51:46

回答

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; 
} 
+0

非常感謝您的幫助......這幫助我對它進行分類出來,它的筆記正常工作。 – 2013-05-02 12:47:50

1

試試這個

while($row_RatingResults = mysql_fetch_assoc($RatingResults)){ 
    $TRate=$row_RatingResults['totalrate']; 
    $NoRates=$row_RatingResults['nrrates']; 
    $finalrate=$TRate/$NoRates; 
    echo $finalrate."<br>"; 
} 
+1

您可能會考慮使用'echo $ finalrate。「
」;'爲了便於閱讀目的 – asprin 2013-05-02 05:58:09

+0

@asprin是的正確 – 2013-05-02 05:59:38

相關問題