голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Голосование на сайте в процентах PHP

На работе мне потребовалось сделать скрипт для подсчета в процентах сделанной работы. Вся сложность заключалась в том, что должны отображаться проценты сделанной работы. Я не сразу придумал алгоритм расчёта сделанной работы в процентах. Я зашел на яндекс и прочитал несколько статей. Я не нашел для себя нужного скрипта, но я увидел алгоритм расчёта. Я приведу вам простой вариант моего скрипта.


//голосование для двух рубрик
function voting($php, $jquery)
{
    $votingArr = array();
    $sum = $php + $jquery;
    $one = ($sum * 1)/100; // один процент
    $votingArr['php'] = round(($php * 100) / $sum)." %";
    $votingArr['jquery'] = round(($jquery * 100) / $sum)." %";
    return $votingArr;
}
$a = voting(8, 5, 5);
print_r($a);

Обратите внимание на то, что функция принимает два параметра. Вы можете сделать больше входных параметров. Допустим у вас не 2 рубрики, а 4. Вам придётся добавить еще 2 входных параметра. Например, voting($php, $jquery, $html, $css). Затем нужно сменить значение для $sum. $sum = $php + $jquery + $html + $css. Значение $votingArr['php'] вычисляется с по формуле $php * 100 / $sum. Значение вы умножаете на 100% и делите на общую сумму. Таким образом вы получаете процент голосования за выбранную рубрику. Число превратилось в строку. Для этого я применил конкатенацию ." %". Как понять чему равен один процент? $one = ($sum * 1) / 100. Вы можете не умножать сумму на единицу, а сразу выполнить деление на 100. Вы получите значение равное 1% от суммы. Соответственно 2% - это $one *= 2.

Теперь я немного усложню скрипт. Каждый раз менять функцию утомительно. Можно в входной параметр передать только один массив и этого будет достаточно. Функция round() округляет значение до целого числа. Читайте о функции round на странице как округлить дробные числа PHP. Сколько бы ни было элементов в массиве, функция обработает каждый элемент массива.


//голосование для множества рубрик
function voting($arr)
{
    //для будущих значений
    $votingArr = array();
    /* по умолчанию сумма 
       всех значений равна 0 */
    $sum = 0;
    foreach($arr as $key => $value)
    {
        $sum  + = $value;
    }
    // один процент
    $one = ($sum * 1) / 100; 
    foreach($arr as $key => $value)
    {
        $votingArr[$key] = round( ($value * 100) / $sum )." %";
    }    
    return $votingArr;
}
$arr = array('php'=> 10, 'jqueru' => 15, 
             'ruby' => 20, 'html' => 33);
$a = voting($arr);
print_r($a);
//Array ( [php] => 13 % [jqueru] => 19 % 
//[ruby] => 26 % [html] => 42 % )

Для того чтобы эта функция сработала, вам нужно сделать таблицу в базе данных. Вы должны выбрать значения всех рубрик и их название. Затем вы должны сделать кнопку или картинку. Нажатие на кнопку должно к приводить к увеличению значения на 1 единицу. Когда функция вернёт массив, вы должны снова записать новые значения в базу данных. Вытащить значение -> пересчитать -> записать значения в базу. Вы можете вместо подсчёта рубрик подсчитать процент выполненной работы. Вы должны будите вывести один элемент массива. Вы также можете вывести процент невыполненной работы.

просмотры: 2201, уровень: лёгкий уровень, рейтинг: 4, дата: 2015-08-03 22:00:00
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP