簡體   English   中英

PHP-如何在循環中輸出MySQL平均商店評價

[英]PHP - how to output a MySQL average store rating in a loop

我有一個表,其中包含目錄中每個商店的評分。 我想在業務目錄列表頁面上顯示每個商店的平均評分。 我已經完成了目錄業務列表頁面,但沒有獲得平均評分。

我相信我已經找到了如何創建平均評分的方法,但是我不知道如何獲得每個商店在循環中輸出的評分。

這是我如何計算評分:

$result = mysql_query("SELECT AVG(rating) FROM reviews GROUP BY store_id WHERE store_id = '$storeid'");
$rating_for_page = mysql_fetch_row($result);
$rating = $rating_for_page[0];

使用查詢:

echo "<table>\n";
echo "<tr><th>Store ID</th><th>Name</th><th>Avg. Rating</th></tr>\n";
$result = mysql_query("SELECT s.store_id, s.store_name, AVG(r.rating) AS avg_rating
                       FROM stores as s
                       JOIN ratings as r ON s.store_id = r.store_id
                       GROUP BY s.store_id");
while ($row = mysql_fetch_assoc($result)) {
    echo "<tr><td>$row[store_id]</td><td>$row[store_name]</td><td>$row[avg_rating]</td></tr>\n";
}
echo "</table>\n";

然后遍歷此查詢的結果。 每行將是不同商店的平均評分。

如果我正確理解了該問題,則應該遍歷結果。 另外,在MySQL命令中,您需要為AVG(rating)設置一個AS 我已經設置了mysql_fetch_assoc (而不是mysql_fetch_row ),以便在關聯數組中返回結果:

foreach ($storeids as $storeid) {
  $result = mysql_query("SELECT AVG(rating) AS rating FROM reviews GROUP BY store_id WHERE store_id = '$storeid'");
  while ($row = mysql_fetch_assoc($result)) {
    echo $row['rating'];
  }
}

編輯查看您的查詢並看到設置了$storeid ,不清楚該值來自何處,但我將提供的解決方案包裝在foreach循環中,該循環假定您有一個包含所有$storeids的列表(希望是一個數組) $storeids循環通過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM