我需要根据某些条件过滤数据并显示过滤后的数据以及金额的总和值..
但问题是我有两个不同的查询...
下面是我的代码,用于根据 fromdate 和 todate 从数据库中过滤数据...
[问题。我的代码是否正确显示数据,但不显示来自 fromdate 和 to date 过滤器中第二个条件的金额列总和...
<?php
if($_POST && isset($_POST['Submit']))
{
if($_POST['street']!='')
{
$street = $_POST['street'];
$data = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE street =:street GROUP by book_no,receipt_no",array(':street'=>$street));
}
elseif($_POST['fromdate']!='' && $_POST['todate']!='')
{
$fromdate = $_POST['fromdate'];
$todate = $_POST['todate'];
$data = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE bookingdate BETWEEN :fromdate AND :todate GROUP BY book_no,receipt_no order by bookingdate asc"
,array(':fromdate'=>$fromdate,':todate'=>$todate));
$tot = $database->getRows("SELECT SUM(AmountTotal) FROM (SELECT SUM(DISTINCT amount) AS AmountTotal, receipt_no FROM receipt_entry where bookingdate BETWEEN :fromdate AND :todate GROUP BY receipt_no) AS T1",array(':fromdate'=>$fromdate,':todate'=>$todate));
}
}
?>
<table>
<thead>
<tr>
<th width="4%">Sr.No</th>
<th width="12%">Book / Recpt</th>
</tr>
</thead>
<tbody>
<?php foreach($data as $row){ ?>
<tr>
<td></td>
<td><?php echo htmlspecialchars($row['book_no']); ?> / <?php echo htmlspecialchars($row['receipt_no']); ?></td>
</tr>
</tbody>
<?php }?>
<?php foreach($tot as $tota) {?>
<tr><td colspan="8"><?php echo $tota['AmountTotal']; ?></td></tr>
<?php } ?>
</table>
最佳答案
您实际上可以使用提到的两个查询查询两次,然后将其合并到 $data 变量中的单个关联数组中。
$d = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE bookingdate BETWEEN :fromdate AND :todate GROUP BY book_no,receipt_no order by bookingdate asc"
,array(':fromdate'=>$fromdate,':todate'=>$todate));
$tot = $database->getRows("SELECT SUM(AmountTotal) FROM (SELECT SUM(DISTINCT amount) AS AmountTotal, receipt_no FROM receipt_entry where bookingdate BETWEEN :fromdate AND :todate GROUP BY receipt_no) AS T1",array(':fromdate'=>$fromdate,':todate'=>$todate));
$data = array('data'=>$d, 'total'=>$tot);
然后您可以将 $data 传递到任何地方以使用这两个值。
关于php代码显示金额列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29233319/