我在尝试使用此代码获取每行的总金额时遇到了困难:
Total Sales for this day:
<b>Php <?php
function formatMoney ($number, $fractional=false) {
if ($fractional) {
$number = sprintf('%.2f', $number);
}
while (true) {
$replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number);
if ($replaced != $number) {
$number = $replaced;
}
else {
break;
}
}
return $number;
} // formatMoney
$result1 = mysql_query("SELECT sum(sales) FROM sales where date='$startDate'");
while($row = mysql_fetch_array($result1)) {
$rrr=$row['sum(sales)'];
echo formatMoney($rrr, true);
}
?>
但是,一旦我手动将数据直接插入数据库,它似乎正在工作。只是每当我尝试通过系统添加数据时,值都不会显示。
除此之外,如果列旁边的列放置了一个连接到它的值,我也会遇到如何刷新列的问题。
有什么想法吗?我陷入了困境。
其他信息:
这是实际的表格。
No. of Remaining Property No. of Rented Property Rent Cost Amt. Tendered 1 1 1000 1000 1 1200
如果在No. of Rented Property
[示例1]中放置了一个值,则必须刷新其旁边的另一列No. of Remaining Property
,并且应显示0.然后,招标金额的值必须为= NO。租赁物业x租金成本。
您会看到第一行中包含值。它的工作,因为我在数据库上进行手动插入。但第二行仅显示No. of Remaining Property
的值,其余为空。当我尝试在NoRentedProperty
中添加值时NoOfRemaningProperty
仍然显示1并且金额未被乘以投标金额。
我已经检查了我的代码,我很确定它一切都很好。但我不明白为什么会这样。
答案 0 :(得分:0)
第一&amp;最重要的是,您应该始终格式化代码以使其更易于阅读。它可以帮助您更好地调试此类问题。它帮助其他人 - 比如我们 - 帮助您调试问题:
function formatMoney ($number, $fractional=false) {
if ($fractional) {
$number = sprintf('%.2f', $number);
}
while (true) {
$replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number);
if ($replaced != $number) {
$number = $replaced;
}
else {
break;
}
}
return $number;
} // formatMoney
$query_sql = "SELECT SUM(sales) sales_total FROM sales WHERE date='$startDate'";
// echo $query_sql . '<br />';
$result1 = mysql_query($query_sql);
while ($row = mysql_fetch_array($result1)) {
$rrr = $row['sales_total'];
echo formatMoney($rrr, true);
}
除了基本格式之外,我做的主要事情是将SUM(sales)
作为sales_total
返回。
就格式化而言,我还在名为$query_sql
的变量中设置了实际查询SQL,并在其中添加了一个注释掉的行echo $query_sql . '<br />';
。我建议您在系统上取消注释,然后查看正在设置的查询。直接在数据库中测试。
鉴于你没有提供$startDate
看起来像什么的例子 - 或者解释它来自哪里 - 没有其他方法可以调试它。