这种数字格式有啥问题? [关闭]
Posted
技术标签:
【中文标题】这种数字格式有啥问题? [关闭]【英文标题】:What's wrong with this number format? [closed]这种数字格式有什么问题? [关闭] 【发布时间】:2020-03-12 23:37:58 【问题描述】:我想回显 mysql 列中的值,但我想得到千位中的逗号。因此,我收到的是 5000,而不是收到“5,000”。我使用的是 number_format,但它似乎有问题,因为浏览器控制台显示“0,00”而不是我通过 Jquery/Ajax 调用的值。一些想法?我将数字作为字符串插入。示例:("INSERT INTO Votes (votes) VALUES ('10000')"; 也许是有什么关系?
这是我从 MySQL 获取数据的 php 代码:
$co = $_REQUEST['color'];
$sql = "SELECT SUM(votes) AS sum FROM Votes WHERE color = '$co'";
$result = $conn->query($sql);
if ($result->num_rows > 0)
$row = $result->fetch_assoc();
echo number_format($row["sum"], 2, ",", ".");
else
echo "No result found";
【问题讨论】:
如果你只是回显$row["sum"]
,你会得到什么?
Running echo number_format("5000", 2, ",", ".");
确实打印了预期的结果,所以我怀疑 $row["sum"]
有问题
Anis R. 只需 $row["sum"] 我得到了值,但没有逗号,我想要千位逗号。
了解 sql 注入以及准备和绑定查询的重要性
请注意,当某个答案在某种程度上被证明有帮助时,最好给它点赞,而不是将贡献者视为某种走狗
【参考方案1】:
只需执行number_format("5000")
,您就会得到5,000
。
根据您的示例推断,它将是:
number_format($row['sum'])
例如,如果 $row['sum'] 是 5000,您将得到 5,000 作为输出。
【讨论】:
我正在使用 Ajax 传递一个变量,所以我不能输入 5000。我正在尝试从 MySQL 表中检索一个值。你明白吗? 我以为你可以推断出来,我想你是初学者,抱歉。刚刚编辑了答案。 JoelBonetR,我试过 number_format($row['sum']),但它在浏览器控制台中得到 0,00。 您在示例中使用的是 PHP,因此如果您在浏览器的控制台中获得 0.00,您可能会在另一端遇到一些错误。我在发布之前用不同的数字对其进行了测试,并且 php 函数按预期工作。也许你有一些 javascript 操作可以提供的数据? 同时检查w3schools.com/php/…【参考方案2】:嗯,在 PHP 中你已经在做的是正确的方法,我不确定你为什么会得到错误的输出。
但是,您也可以尝试直接从 MySQL 格式化数字:
$sql = "SELECT FORMAT(SUM(votes), 2) AS sum FROM Votes WHERE color = '$co'";
通过这样做,$row["sum"]
应该直接格式化。
如果连这都不起作用,那么您很可能在客户端遇到了问题。
【讨论】:
好的,当我这样做时,我会在浏览器控制台中收到 NaN。同样,我将数字作为字符串插入 MySQL 表中。你认为这是问题所在吗? 好的,这很好。但是我怎样才能只显示没有小数点的逗号呢? @JoeSmith 只需将FORMAT(SUM(votes), 2)
中的 2 替换为 0(这是您想要的小数位数)。【参考方案3】:
使用 number_format($row["sum"],2,'.','');
【讨论】:
以上是关于这种数字格式有啥问题? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章