簡體   English   中英

平均評級腳本

[英]Average Rating script

我之前曾問過這個,但我沒有得到一個非常明確的答案。

我需要知道如何為網站制作評級腳本。 我有一個表單,提交十分之一到mysql。 你如何使用php從mysql列中顯示平均評分?

一個人建議有兩張桌子; 一個用於所有評級,一個用於每個頁面的平均評級。 有比這更簡單的方法嗎?

您希望在每次頁面崩潰時存儲評級。 因為如果你只是將平均評分存儲在一列中,例如

ratings (page_id, average_rating)

要確定它並不容易:

  1. 有多少用戶評分
  2. 評級的分布(例如,投票數為10)

並且您不能允許用戶更改他們的評級,因為所有內容都被平鋪成一行。 如果使用MYSQL中的平均函數,則可以不使用第二個表

$result = mysql_query("SELECT AVG(rating) FROM ratings GROUP BY page_id WHERE page_id = '$pageid'");
$rating_for_page = mysql_fetch_row($result);
$rating = $rating_for_page[0];

請注意,我假設每個評級都存儲為單獨的行

如果您收集單個功能的評級,讓我們說FeatureX並放在列中,讓我們說FCOLX,那么您可以:

  1. 使用內置的Mysql AVG()函數
  2. 獲取所有值並計算php腳本中的平均值。

計算平均值通常如下:

$myRatings = $dbHandler->fetch(); //generic fetch
$totalRatings = count($myRatings);
$sum = 0;
foreach($myRatings as $index=>$rating){
   $sum+=$rating['FCOLX']; //where FCOLX is the column where you have the user rating [1-10];
}

$average = 0;

if($totalRatings>0){ 
  $average = $sum/$totalRatings;
}

得出的平均值將是您使用的1-10的等級。

對於評級而言,簡單的平均值本身並不是很好。 例如,如果一百人投票平均為8.5,那么只有一個人在其他投票上投票10會給它一個更好的排名。

不久前我曾經問過一個類似的問題 ,你可能會對此感興趣。

暫無
暫無

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

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