2014-04-15 60 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