我正在尝试对同一字段进行两次计数,因为当前设置输入的工作代码为“ 10”,“ 11”,“ 12”,“ 13”,“ 40”,“ 400”,“ 80”作为已完成的工作,但是其他工作代码(例如55、56、57)表示工作尚未完成。

通过以下内容,我设法计算了work_code表并显示了成功完成的工作量,但是我在努力如何为未完成的工作(即55、56等)计算与该显示相同的表。

下面是我的代码.....

<?php
require 'db.php';

    $sqltran = mysqli_query($con, "SELECT *, ROUND(SUM(Sales),0), ROUND(AVG(Sales),2), COUNT(Work_Code) FROM results_tbl_1 WHERE RECORD_ID BETWEEN 468100 AND 500000 AND Work_Code IN ('10', '11', '12', '13', '40', '400', '80')  GROUP BY ENG_ID ORDER BY ROUND(SUM(Sales),0) DESC ") or die(mysqli_error($con));

    $arrVal = array();

    $i=1;
    while ($rowList = mysqli_fetch_array($sqltran)) {

                    $name = array(
                            'num' => '<img alt="" height="16" src="./top10.png" width="16">' . $i,


                            'eng'=> $rowList['ENG_ID'],

                            'totalvisits'=> $rowList['COUNT(Work_Code)'],

                            'ajv'=> '£' . $rowList['ROUND(AVG(Sales),2)'],

                            'sales'=> '£' . $rowList['ROUND(SUM(Sales),0)'],





                        );


                        array_push($arrVal, $name);
        $i++;
    }
         echo  json_encode($arrVal);


    mysqli_close($con);


然后,数据将使用以下配置显示在引导表上。

<script type="text/javascript">

 var $table = $('#table');
         $table.bootstrapTable({
              url: 'test/board.php',
              search: false,
              pagination: true,
              buttonsClass: 'primary',
              showFooter: false,
              minimumCountColumns: 2,
              columns: [{
                  field: 'num',
                  title: 'Rank',
                  sortable: false,
              },{
                  field: 'eng',
                  title: 'Engineer',
                  sortable: false,
              },{
                  field: 'totalvisits',
                  title: 'Total Jobs',
                  sortable: false,
              },{
                  field: 'ajv',
                  title: 'AJV',
                  sortable: false,
              },{


                  field: 'sales',
                  title: 'Total',
                  sortable: false,
              },  ],

         });




我的问题是如何计算工作代码55,56等并在桌子上显示计数?

谢谢 :)

最佳答案

创建两个新数组,一个用于表示完成的作业代码,另一个用于表示未完成的作业代码。另外,在这种情况下,请勿尝试在查询中进行计数。

然后,当您遍历结果时,测试$row['Work_Code'] against the arrays using array_search()`。您还需要两个变量来存储计数。

它看起来像这样:

$completedJobs = array(1,2,3,4,5);
$incompleteJobs = array(7,8,9,10,11);
$completeTotal = 0;
$incompleteTotal = 0;
$i=1;
    while ($rowList = mysqli_fetch_array($sqltran)) {
      //I've stripped out what is not relevant to my example
      if(array_search($rowList['Work_Code'], $completedJobs) {
           $completeTotal++;
     }
     if(array_search($rowList['Work_code'],$incompleteJobs){
           $incompleteTotal++;
     }

}

09-08 00:00
查看更多