我有一个items
表,其中包含以下列:id
,name
,category
和一个ratings
表,其中包含列:id
,{ {1}},item
。
如何计算每件商品的平均评分?
我想用:
返回一个php数组rating
到目前为止,这是我的PHP功能:
[id] => item.id
[name] => item.name
[rating] => average rating
答案 0 :(得分:2)
只需使用SQL AVG()
函数,无需在PHP中执行。您还需要GROUP BY
项目的ID,否则您将获得每个项目的平均值:
SELECT item, AVG(rating) as rating, items.id, items.name FROM ratings INNER JOIN items ON ratings.item=items.id WHERE category = '" . $category . "' GROUP BY items.id;
现在,结果中的rating
字段是每个项目的平均值。
您应该阅读prepared statements。现在,您的查询很容易受到SQL注入的攻击。</ p>