无法获得每一行的总金额

时间:2014-06-12 05:14:17

标签: php mysql

我在尝试使用此代码获取每行的总金额时遇到了困难:

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并且金额未被乘以投标金额。

我已经检查了我的代码,我很确定它一切都很好。但我不明白为什么会这样。

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看起来像什么的例子 - 或者解释它来自哪里 - 没有其他方法可以调试它。