Подскажите как устроен принцип работы подсчета голосов, точнее вывод результата рейтинга Есть две переменные с положительными и отрицательными голосами Скажем Код (Text): $up = 2034; $down = 506; Я к примеру подсчитываю так Код (Text): $rating = $up / $down; Но если скажем Код (Text): $down =1; то уже увидим что Код (Text): $rating = 2034; Вобще не пойму как он устроен, на процентах что ли?
Можно так: рейтинг будет в диапазоне от -1 (абсолютное зло) до +1 (абсолютное добро) Код (Text): $total = $up + $down; $rating = ($total == 0) ? 0 : (($up - $down) / $total); как это перевести в проценты или в диапазон 1..10 надеюсь понятно если пользователь буквально тыкает в звездочки, то можно считать первую звезду как $down -= 5 , вторую как $down -= 4 и т.д, правая $up += 5 Добавлено спустя 8 минут 15 секунд: Забегая вперед, в SQL для быстрого получения рейтинга советую иметь индекс по двум колонкам: KEY rating_inx (rating, total)
по идее надо ($up - $down) / ($up + $down) - это если просто + и - ставят. если с баллами, то (1 * $n1 + 2 * $n2 + 3 * $n3 + ... + 10 * $n10) / ($n1 + $n2 + $n3 + ... + $n10)
спасибо, понял работу Вот еще вопросик, вроде как все понятно, но вот если у нас к примеру положительный рейтинг 1000, а отрицательный 3 Код (Text): $up = 1000; $down = 3; то тогда получается что рейтинг будет Код (Text): $rating = 0.999 но это не правильно, ведь должен быть от 1 до 10, т.е. в данном случае он должен быть не 0.999, а 9.999
ну ёмоё! из вашей постановки следовало, что есть голоса "за" и "против". логично предположить отрицательный рейтинг. а вообще из одной системы в другую приводится так: Код (Text): echo ($rating + 1) * 5; // это уже от 0 до 10 :) Добавлено спустя 5 минут 13 секунд: нет, ответ будет другим Добавлено спустя 7 минут 51 секунду: нако считай: https://docs.google.com/spreadsheet/ccc?key=0ArbGXyV7anzbdG ... 1ZtUUQ0T1E