更好的方法是为自己添加一个数字并仅打印最后一个值

时间:2014-02-05 05:18:51

标签: php mysql

我想从数据库中获取金额,并希望将这些金额的总和存储在变量中并打印该变量。我搜索并获得了一个链接,为自己添加一个数字,并在我的代码中尝试了它,但我没有得到预期的输出。

这是我的代码..

 <?php
 $cid = $_REQUEST['cname'];
 $cmd = mysql_query("SELECT amount FROM fund WHERE clientid = $cid");
 while($row = mysql_fetch_array($cmd)) {
    $acnt += $row['amount'];
    echo $acnt;
 }
 ?>

我通过此输出的结果就像 - 10001200130015002000

但我只是期待最后一个2000的附加值仅作为我的输出。

3 个答案:

答案 0 :(得分:2)

让MySQL为您完成工作而不是循环:

$cmd = mysql_query("select sum(amount) amount from fund where clientid = '$cid'");
$row = mysql_fetch_assoc($cmd);
$acnt = $row['amount'];
echo $acnt;

顺便说一下,你必须逃避原始输入或使用这样的格式化函数:

$sql = sprintf('select sum(amount) amount from fund where clientid = %d', $cid);
$cmd = mysql_query($sql);
// ...

或者更好的是,使用PDOmysqli并了解准备好的陈述。

答案 1 :(得分:0)

试用此代码:

您无需使用loop.on代表只使用sql查询执行金额总和。

$cmd = mysql_query("select sum(amount) amount from fund where clientid = $cid");
$row = mysql_fetch_array($cmd);
$acnt = $row['amount'];
echo $acnt;

答案 2 :(得分:-1)

您每次在while循环中回显值,这就是您每次获取显示量的原因。在while循环之后回显量。

 while($row = mysql_fetch_array($cmd))
   {
    $acnt += $row['amount'];
  }
echo $acnt;