Как рассчитать среднее по звездной рейтинговой системе?
Я разрабатываю звездную рейтинговую систему с 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
,
С уважением