На веб-сайте у меня есть несколько небольших PHP-скриптов для автоматизации изменений в тексте сайта, в зависимости от цифры, которая рассчитывается из базы данных MySQL. Сайт предназначен для группы по сбору средств, а в тексте на главной странице указана общая привлеченная сумма.
Собранная сумма извлекается из базы данных и округляется до тысяч. Это PHP, который я использую для округления фигуры и нахождения последних трех цифр от общего числа:
$ query4 = mysql_query ("ВЫБЕРИТЕ СУММУ (сумма собрана) КАК full_total ОТ сбора средств;");
$ result4 = mysql_fetch_array ($ query4);
$ fulltotal = $ result4 ["full_total"];
$ num = $ fulltotal + 30000;
$ ftotalr = round ($ num, -3);
$ roundnum = round ($ num);
$ string = $ roundnum;
$ length = strlen ($ string);
$ символов = 3;
$ start = $ length - $ символов;
$ string = substr ($ string, $ start, $ символов);
$ figure = $ string;
(£ 30 000 - это сумма, которая была собрана предыдущей командой по сбору средств с момента первого запуска проекта, поэтому я добавил 30000 к полной сумме $ для переменной $ num)
В настоящее время текст гласит:
the bookstall and other fundraising events have raised more than £<? echo number_format($ftotalr); ?>
Я только что понял, что, поскольку PHP округляется до ближайшей тысячи, если общая сумма составляет, например, 39 200 фунтов стерлингов и округляется до 40 000 фунтов стерлингов, сказать, что это более 40 000 фунтов стерлингов, неверно, и в этом случае я ' мне нужно было сказать «почти 40000 фунтов стерлингов» или что-то подобное. Очевидно, мне нужно заменить «больше, чем» на переменную.
Очевидно, мне нужно проверить, являются ли последние три цифры суммы ближе к 0 или 1000, чтобы, если сумма составляла, например, 39,2000 фунтов стерлингов, текст читался бы как «чуть больше», если бы он был между £ От 39 250 до 39 400 фунтов стерлингов, что-то вроде «больше», от 39 400 до 39 700 фунтов стерлингов, что-то вроде «хорошо закончено», и от 39 700 до 39 999 фунтов стерлингов, «почти».
Мне удалось получить последние три цифры суммы как переменную, и я думаю, что мне нужен какой-то блок кода if / else / elseif (не уверен, что это будет правильный подход, или стоит ли use case / break), и, очевидно, мне придется проверить, соответствует ли фигура каждому из критериев, но я не могу понять, как это сделать. Кто-нибудь может предложить, как лучше всего это сделать, пожалуйста?