基本上我編寫了一個網站,允許用戶發佈體育賽事。然後成員可以評價每個事件。評分系統爲10分制:0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0。寫5星級評分系統的最佳方法是什麼?
有四類:
組織,物有所值,設施,娛樂因素
我的值存儲在使用float
領域的MySQL數據庫。
我已經使用了以下虛擬數據來測試系統。
- org = 2,v4m = 4.5,fac = 4,fun = 2.5;
- org = 3.5,v4m = 4,fac = 4.5,fun = 1.5;
- org = 1,v4m = 5,fac = 4.5,fun = 2.5;
當根據上面的內容顯示事件評分時,我希望每個類別都輪到上面提到的5星級評分系統。
到目前爲止,我有下面的代碼,除了四捨五入之外,它似乎工作正常。
例如:目前三家機構評級的平均值爲2.1666666666667
,我想將其平均爲2.0
。如果平均數爲4.6666666666667
,我希望它的值爲4.5
。
但我該怎麼做?
繼承人到目前爲止我的代碼:
// Count how many ratings this event has
if($ratingCount = $event->getEventRatingCount($event_id)){
// Get ratings for this event
$eventRating = $event->getEventRatings($event_id);
$organisation = 0;
$valueForMoney = 0;
$facilities = 0;
$funFactor = 0;
$overall = 0;
foreach($eventRating AS $rating){
$organisation = ($organisation + $rating['organisation']/$ratingCount);
$valueForMoney = ($ValueForMoney + $rating['value_for_money']/$ratingCount);
$facilities = ($facilities + $rating['facilities']/$ratingCount);
$funFactor = ($funFactor + $rating['fun_factor']/$ratingCount);
}
echo '<br />';
echo $organisation . '<br />';
echo $valueForMoney . '<br />';
echo $facilities . '<br />';
echo $funFactor . '<br />';
echo $overall = ($organisation + $valueForMoney + $facilities + $funFactor)/$ratingCount);
}else{
// no ratings for this event
}
隨着虛擬數據我目前得到這些值:
2.1666666666667
1.6666666666667
4.3333333333333
2.1666666666667
3
如果我有50分的評分,這還能工作嗎? – crm
取決於你使用哪個50。如果評分是0.5,1,1.5,...,25:是的,它會的。 – Joni
對不起我的數學是不好的^^;所以只要最高的選擇是5並且使用這兩種方法(你的和我的)就應該沒問題? – crm