【问题标题】:PHP echo money format plus amountPHP 回显货币格式加金额
【发布时间】:2014-07-24 14:46:19
【问题描述】:

我有一个总报告表,我想从数据库中获取一个值并格式化数字,并得到这样的输出 PHP 10,000.00 而不是这样 10000

这是我的试用 PHP 代码。我有一张用于打印总计报告的表格,但在格式化总金额时遇到了问题。

function printpage()
{
window.print()
}

</script></head>
<body>
<br>
<br>
<div class="container">
<center>
<div class="alert alert-success" align="center"><h1>TOTAL REPORT</h1></div>
<br />
<table  class="table table-striped table-bordered" border="1"  width="900">
    <thead>
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Address</th>

            <th>Start of Event</th>
            <th>End of Event</th>
            <th>Quantity</th>
            <th>Amount</th>
            <th>Status</th>
            <th>Confirmation</th>               
        </tr>
    </thead>
    <tbody>
        <?php 
        $con=mysql_connect("localhost","root","")or die(mysql_error());
      $db=mysql_select_db('pm')or die(mysql_error());

            $query=mysql_query("select * from reservation  ")or die(mysql_error());
            while($row=mysql_fetch_array($query)){
            $id=$row['id'];
        ?>
        <tr>
            <?php  $row['id'] ?>
            <td><?php echo $row['firstname'] ?></td>
            <td><?php echo $row['lastname'] ?></td>
            <td><?php echo $row['address'] ?></td>
            <td><?php echo $row['arrival']?></td>
            <td><?php echo $row['departure'] ?></td>
            <td><?php echo $row['result'] ?></td>

            <td><?php 
            $number = 'payable';
            $payable = 0;
            setlocale(LC_MONETARY,"en_PHP");
    echo $row("The price is %i", $payable);
   ?>  </td>
            <td><?php echo $row['status'] ?></td>
            <td><?php echo $row['confirmation'] ?></td>
        </tr>
        <?php } ?>
    </tbody>
</table>
<?php
    $result = mysql_query("SELECT sum(payable) FROM reservation") or die(mysql_error());
    while ($rows = mysql_fetch_array($result)) {
?>

<?php }

$result1 = mysql_query("SELECT result(qty) FROM rooinventory") or die(mysql_error());
while ($rows1 = mysql_fetch_array($result1)) {
?>  
<div class="pull-right">
    <div class="span">
        <div class="alert alert-info"><i class="icon-credit-card icon-large">      </i>&nbsp;Total Amount:&nbsp;<?php echo $rows1['sum(p)']; ?></div>
    </div>
</div>
</center>
<?php } ?>

【问题讨论】:

  • mysql 已弃用,请使用 mysqli 或 PDO。

标签: php html-table money-format


【解决方案1】:

您的语言环境错误,$number 实际上应该是 $row 值。

setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $row['payable']);

对于 Windows 机器

echo '$' . number_format(floatval($row['payable']));

【讨论】:

  • 但这个数字在我的表格行中应付。我想在那里获取号码并在我的打印中具有格式
  • 如果您在从数据库中获取值时遇到问题,那么答案不在于如何格式化该数字。您需要从表中获取行并以 $row['payable'] 之类的方式访问。您的问题似乎格式不正确。如果您的问题实际上是从数据库表中检索一个值,那么格式化不会帮助您到达那里。
  • 绝对有可能,但您没有提供有关如何从数据库中获取任何信息的任何代码。您说的是“table”,并且显示了带有 和错误 setlocale 函数的部分代码。我建议你问一个关于如何从数据库中读取数据的新问题。或者谷歌一下。
  • 对不起,我搜索了 echo money_format,这就是我在 google 中看到的,我只想在我的代码中尝试它,但它有问题。但非常感谢!
  • 那么请为您的示例提供更多背景信息。
【解决方案2】:

您的代码需要修复。此外,根据您的系统,en_US 可能还不够(即:Debian 需要 en_US.utf-8):

setlocale(LC_MONETARY, "en_US.utf-8");
echo money_format("The price is %i", $row['payable']);

【讨论】:

  • 数字在我的表中,我只想为其设置一个格式并带有钱号
  • 如果它在您的表格中,查看您的代码,您可以像在我编辑的示例中那样得到它。但是我很害怕我不知道名为“en_PHP”的语言环境,但这可能永远不会奏效。另一方面,如果您的查询“select * from reservation”中没有“payable”,您可能应该像@alan-asher 告诉您的那样询问查询本身。
  • 我的餐桌上有应付账款。如果不可能,我想回应 PHP + 应付账款。会怎么样?
  • 我使用 number_format() 是错误“警告:number_format() 期望参数 1 为双精度,字符串中给出”
  • "PHP" 不是一种货币,也不是我所知道的语言环境...如果您想将“PHP”与格式化数字连接,您应该使用 number_format() 代替。然后,如果 $row['payable'] 是一个字符串,也许将其转换为浮点数会有所帮助。也许您可以向我们展示 $row 的内容?
猜你喜欢
相关资源
最近更新 更多
热门标签