在一个网站上,我有一些小的 PHP 脚本来自动更改网站的文本,这取决于从 MySQL 数据库计算的数字。该网站是为一个筹款团体准备的,主页上有问题的文字给出了筹款总额。
筹集的金额从数据库中提取并四舍五入到最接近的千位。这是我用来四舍五入并找到总数的最后三位数字的 PHP:
$query4 = mysql_query("SELECT SUM(amountraised) AS full_total FROM fundraisingtotal;");
$result4 = mysql_fetch_array($query4);
$fulltotal = $result4["full_total"];
$num = $fulltotal + 30000;
$ftotalr = round($num,-3);
$roundnum = 圆形($num);
$string = $roundnum;
$length = strlen($string);
$字符 = 3;
$start = $length - $characters;
$string = substr($string, $start,$characters);
$图 = $字符串;
(30,000 英镑是前一个筹款团队从项目刚开始时筹集的金额,这就是为什么我在 $fulltotal 中为 $num 变量添加了 30000)
目前案文如下:
the bookstall and other fundraising events have raised more than £<? echo number_format($ftotalr); ?>
我刚刚意识到,因为 PHP 四舍五入到最接近的千位,如果总数为 39,200 英镑并且四舍五入为 40,000 英镑,说它超过 40,000 英镑是不正确的,在这种情况下我需要它说“差不多 40,000 英镑”或类似的东西。我显然需要用变量替换“超过”。
显然,我需要测试总数的最后三位数字是否更接近于 0 或 1000,因此如果总数为 39,2000 英镑,则文本将显示为“刚刚结束”,如果它在 39,250 英镑和 39,250 英镑之间39,400 英镑“超过”,39,400 英镑到 39,700 英镑之间,“差不多”,39,700 英镑到 39,999 英镑之间,“差不多”。
我设法将总数的最后三位数字作为变量,我认为我需要某种 if/else/elseif 代码块(不确定这是否是正确的方法,或者是否使用 case/ break),显然我将不得不检查这个数字是否符合每个标准,但我不知道该怎么做。谁能建议最好的方法是什么?