PHP的SQL格式选择列号

时间:2018-11-06 19:17:44

标签: php sql number-formatting

在示例中,我正在从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标准,每组三个数字都用逗号表示小数点和空格。

2 个答案:

答案 0 :(得分:0)

更新:

是的,真正的money_format在Windows上不起作用。谢谢戴夫。 :)

使用number_format( $row[' amount_column '], 2, ',', '.')

它为您提供 123.456.789,12

PHP number_format


(不在Windows上!)

您可以使用php的money_format('%i', $row[' amount_column '])

PHP money_format

<?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 ']

数组索引计数的间距!

这是证明https://ideone.com/FtPEc6

从技术上讲,您批准的答案是错误的。