回应pdo中的总和

时间:2015-12-20 08:30:08

标签: php mysql pdo

我想在HTML表格中显示所有行,在最后一行中,我想要显示Pay列的总和并显示它。 我有一个SQL查询,从表中选择所有:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="radio" id="less_7" name="duration" />
<label for="less_7" id="label_7">Less 7</label>
<p>Less 7</p>
<input type="radio" id="7_10" name="duration" />
<label for="7_10" id="label_10">7 to 10</label>
<p>7 to 10</p>

它显示了html表中的所有数据。但是当我将其添加到查询中时:

<?php
        $selectAll = "SELECT * FROM sales WHERE date_now = :date";
        $stmtAll=$conn->prepare($selectAll);
        $stmtAll->bindValue(':date', date("y-m-d"));
        $execAll=$stmtAll->execute();
        $result=$stmtAll->fetchAll();
      ?>

然后在一个新行中:<?php $selectAll = "SELECT sum(pay) as total, sales.* FROM sales WHERE date_now = :date"; $stmtAll=$conn->prepare($selectAll); $stmtAll->bindValue(':date', date("y-m-d")); $execAll=$stmtAll->execute(); $result=$stmtAll->fetchAll(); ?> 它只向我显示所有表中的一行,但总数正确回显。

1 个答案:

答案 0 :(得分:1)

所以你应该从你的查询中删除总和就像第一个查询一样,你有2个选择来得到总和:

1-运行下一个查询以获得总和:

SELECT sum(pay) as total FROM sales WHERE date_now = :date

2-通过你的php代码,通过make var $sum = 0;然后在你的循环中为第一个查询添加pay的值$sum = $sum + $rows['total'];

这是因为查询中的总和作为收集行集合并对每个组的所有付费值进行求和,例如,如果您想要在发票字段中计算所有付款的总和:{{1}如果你没有使用select sum(pay) from sales group by invoice_id,你将按照查询的方式对所有销售行求和。