在示例中,我正在从SQL表中检索各种列,其中一些是数字或货币:
$sql="SELECT id_column, event_column, amount_column FROM table1";
然后我用它们显示给他们看
$result = mysqli_query($conn,$sql);
echo "<table border='1'>
<tr>
<th>id</th>
<th>event time</th>
<th>amount</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row[' id_column '] . "</td>";
echo "<td>" . $row[' event_column '] . "</td>";
echo "<td>" . $row[' amount_column '] . "</td>";
echo "</tr>";
}
echo "</table>";
是否可以更改在amount_column中得到的格式编号?
我看到应该可以使用命令更改单个数字数据的方式-number_format($ number,2,',','。')–但这似乎不适用于整个列< / p>
我需要做的是在一个(yy)下使用逗号作为小数点,并以3(x.xxx)个成千上万的点来表示逗号,例如xx.xxx.xxx,yy
有人有什么建议吗? (包括当我通过表单输入数据时如何更改PHP或SQL的设置,这些命令使用逗号而不是小数点,但是SQL以不同的方式保存它们–英国/美国的小数标点我想我需要欧盟时意大利/德国标点符号,或者至少是ISO标准,每组三个数字都用逗号表示小数点和空格。
答案 0 :(得分:0)
更新:
是的,真正的money_format
在Windows上不起作用。谢谢戴夫。 :)
使用number_format( $row[' amount_column '], 2, ',', '.')
它为您提供 123.456.789,12
(不在Windows上!)
您可以使用php的money_format('%i', $row[' amount_column '])
<?php
setlocale(LC_MONETARY, 'en_US');
$result = mysqli_query($conn,$sql);
echo "<table border='1'>
<tr>
<th>id</th>
<th>event time</th>
<th>amount</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row[' id_column '] . "</td>";
echo "<td>" . $row[' event_column '] . "</td>";
echo "<td>" . money_format('%i', $row[' amount_column ']) . "</td>";
echo "</tr>";
}
echo "</table>";
答案 1 :(得分:0)
正确的答案是我的评论
echo "<td>" . number_format($row['amount_column'], 2, ',', ' ') . "</td>";
您不能这样做:
$row[' amount_column ']
数组索引计数的间距!
从技术上讲,您批准的答案是错误的。