2014-04-15 61 views
-1

我有一個mysql錯誤,因爲mysql_fetch_array():提供的參數不是有效的MySQL結果。 如何解決「Mysql_fetch_array提供的參數不是有效的MYSQL結果」錯誤?Mysql錯誤顯示

function rating($did) 
{ 
    $sqls = "SELECT AVG(driver_rating.rate) 
      FROM `driver_rating` 
      JOIN `order` ON order.id = driver_rating.order_id 
      JOIN `driver` ON order.did = $did 
      GROUP BY $did"; 

    $results = mysql_query($sqls); 

    $num_of_result = mysql_affected_rows();    

    while($rows = mysql_fetch_array($results)) 
    { 
     $info_result=$rows[0]; 
    } 

    if($num_of_result == 0) 
     $infor = 'ok'; 
    else 
     $infor = $info_result; 

    return $infor; 
} 
+0

你得到了什麼樣的錯誤,如果你可以在這裏粘貼錯誤 – jmail

+0

那麼錯誤表明它不是一個mysql對象。這意味着您的查詢中存在錯誤。 – Darren

+1

@jmail如果他很幸運,這是一個棄用錯誤。 –

回答

1

您使用GROUP BY子句不選擇該字段列,在您選擇字段列添加$did

SELECT $did, AVG(driver_rating.rate) 
FROM `driver_rating` 
JOIN `order` ON order.id = driver_rating.order_id 
JOIN `driver` ON order.did = $did 
GROUP BY $did 

華林:Please, don't use mysql_* functions in new code。他們不再維護and are officially deprecated。請參閱red box?請改爲了解prepared statements,並使用PDOMySQLi - this article將幫助您決定哪個。如果您選擇PDO,here is a good tutorial