php - 切换大小写循环 PHP

标签 php mysql while-loop switch-statement

我很沮丧,我尝试了很多方法,但没有找到我预期的结果。我的表数据库中有这些数据:

|       PartID         |   HasilProduksi  |QtyProduksi|
|----------------------|------------------|-----------|
|  BLAP-FG152-PF-KGX   |   Repair         |    1      |
|  AWDX-FG002-HN-KGX   |   Reject         |   90      |
|  HMXX-FG022-EG-KGX   |   Good           |  100      |
|  ECJX-FG018-AV-MCM   |   Good           |  111      |

我想创建包含结果的报告:

|                      |    ACTUAL            |
|       PartID         | ---------------------|
|                      |Good | Repair | Reject|
|----------------------|-----|--------|-------|
|  BLAP-FG152-PF-KGX   |  0  |    1   |   0   |
|  AWDX-FG002-HN-KGX   |  0  |    0   |   90  |
|  HMXX-FG022-EG-KGX   | 100 |    0   |   0   |
|  ECJX-FG018-AV-MCM   | 111 |    0   |   0   |

我正在使用switch case方法,但结果与我的预期结果不同。这是我的代码:

$sqlc = "SELECT * FROM $db_dthp WHERE IdBukti='$id_bukti'";
$qc = mysqli_query($conn, $sqlc);
$c = 0; $good=0; $reject=0; $repair=0;
while ($rc = mysqli_fetch_assoc($qc)) {
    switch ($rc['HasilProduksi']) {
      case 'Good':

        $good += (int) $rc['QtyProduksi'];
        $datagood += (int) $rc['QtyProduksi'];
        break;
      case 'Reject':
        $reject += (int) $rc['QtyProduksi'];
        $datareject += (int) $rc['QtyProduksi'];
        break;
      case 'Repair':
        $repair += (int) $rc['QtyProduksi'];
        $datarepair += (int) $rc['QtyProduksi'];
        break;
      default:
        break;
    }
    $c++;
  }
$res['result'][$i]['data'][$b]['hp'][0]['good'] = number_format($good,0,'.','.'); 
$res['result'][$i]['data'][$b]['hp'][0]['reject'] = number_format($reject,0,'.','.'); 
$res['result'][$i]['data'][$b]['hp'][0]['repair'] = number_format($repair,0,'.','.'); 

你能帮帮我吗?

最佳答案

如果您使用此其他查询,您将已经拥有数据,并且不需要在 php.ini 中进行切换。您将在查询中执行此案例:

$sqlc="SELECT PartID,
    CASE 
        WHEN HasilProduksi='Good' THEN QtyProduksi ELSE 0
    END as Good,
    CASE 
        WHEN HasilProduksi='Repair' THEN QtyProduksi ELSE 0
    END as Repair,
    CASE 
        WHEN HasilProduksi='Reject' THEN QtyProduksi ELSE 0
    END as Reject
FROM $db_dthp WHERE IdBukti='$id_bukti';"

关于php - 切换大小写循环 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45751870/

相关文章:

javascript - 如何为多个网站保留相同的 header

php - 查询查找以相同价格出售三种不同啤酒的所有酒吧

php - 根据积分总和从MySQL数据库中删除记录

c - N x N 井字棋检查获胜

c - 如何在C程序中用汇编语言编写while循环\if语句?

java - 如何在不中断的情况下停止while循环

php 数组 - 检测修改的行并编辑

php foreach循环只插入部分记录到mysql表中

php - symfony2 中同一实体的多行表单

python - 使用 Python MySQLdb timedelta 进行 WreSTLing