Я разрабатываю систему рейтинга звезд с 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);
Нужно быть следующим:
($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
.
С уважением