php - 如果支付类别内没有项目,则打印一个值

标签 php mysql sum payment

我有 4 种付款方式:

Cash, Credit, Debit & Paycheck.

我想做的是打印格式化的 <td>0</td>如果付款方式内没有项目结果(以前的付款)。我正在寻找的输出示例是:

Credit   < td >4000< / td >

Cash     < td >0< / td >

Debit    < td >2000< / td >

PayCheck   < td >0< / td >

这是我的 Mysql 查询

SELECT  SUM(ventas.preciov) as totalp, SUM(boletas.total) as totalb, 
boletas.total, boletas.tpago, boletas.idb, boletas.activa,  ventas.idbv, ventas.marcap
FROM boletas,ventas
WHERE ventas.idbv = boletas.idb AND ventas.marcap = '1' AND boletas.activa = 's'
AND boletas.fventa >= curdate()-INTERVAL '".$_GET["fventa"]."' day GROUP BY tpago 
ORDER BY  tpago DESC

这是我的 PHP 代码

<?php while($result = mysql_fetch_array($query)){
    $i=$result["tpago"];
    $c= $result["total"];
    switch ($i) {
    case "Cash":
    echo $c;
    break;
    case "Credit":
    echo $c;
    break;  
    case "Debit":
    echo $c;
    break;          
    case "Paycheck":
    echo $c;
    break;    
    } ?>

感谢您的帮助。

最佳答案

如果我正确理解您的问题,那么下面的代码可能会帮助您:

<?php
$payment_methods = array('Credit', 'Cash', 'Debit', 'Paycheck');

$total = array();
while($result = mysql_fetch_array($query))
  $total[$result['tpago']] = $result['total'];

foreach($payment_methods as $method) {
  echo $method.' : '.( empty($total[$method])? 0 : $total[$method] ) . '<br/>';
}
?>

关于php - 如果支付类别内没有项目,则打印一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17904262/

相关文章:

c# - 获取多列的总和

php - PHP 不通过引用迭代数组的任何原因?

php - Laravel 4 Auth::attempt 在正确的值上返回 false

mysql - 多个字段有相同的columnName Android Room

r - 数据表总和和子集

Linq:整数之和

php - 即使用户关闭了浏览器,PHP 脚本还能继续运行吗?

php - 如何在 PHP 应用程序中处理 DST 时移?

php 将计划任务以分钟为单位添加到当前时间为 12 :10 - 12:19

mysql - 选择所有行,直到日期差异条件与分组匹配