Как рассчитать среднее по звездной рейтинговой системе?

Я разрабатываю звездную рейтинговую систему с 1-5 звездами. В своей базе данных я сохраняю их так:

$stars_1 = 1;
$stars_2 = 6;
$stars_3 = 3;
$stars_4 = 11;
$stars_5 = 22;

$total_votes = 43

Когда пользователь голосует, используя, например, 3 звезды, я обновляю stars_3 на 1, а total_votes на 1. Затем мне нужно вычислить средний рейтинг (звезды).

Я делаю это прямо сейчас, но я не работаю (результат кажется неправильным):

(($stars_1 + $stars_2 + $stars_3 + $stars_4 + $stars_4) / $total_votes);

2 ответа

Решение

Должно быть так:

($stars_1 + $stars_2 * 2 + $stars_3 * 3 + $stars_4 * 4 + $stars_5 * 5) / $total_votes;

Вам нужно умножить количество звезд на фактический рейтинг. подобно

$points_stars_2 = $stars_2 * 2  
...  
$points_stars_5 = $stars_5 * 5 

А затем вы добавляете их все в одну переменную, как в вашем коде, а затем делите ее на $total_votes,

С уважением

Другие вопросы по тегам