求解每笔交易的总数。(Google 图表)

Solve for the total every transaction is going in. (Google chart)

我有一张图表,我需要用它来计算随着时间的推移我的收入。在此图表中,我有金额(红线)。我的目标是计算正在进行的每笔交易的总额。我当前的代码无法正常工作,因为时间为 18:26:23 时为 1000 amount的时候是18:26:24,还是1000...应该是 2000它应该随着时间的推移解决总和。 我在下面提供了我的代码以及我当前系统和我的目标的屏幕截图。提前谢谢你。

观看次数:

<div class="col-md-12">
            <!-- LINE CHART -->
            <div class="card card">
              <div class="card-header">
                <h3 class="card-title">Stats Per Day</h3>

                <div class="card-tools">
                 <button type="button" class="btn btn-tool" data-card-widget="collapse" style="width:30%;">
                    <i class="fas fa-minus"></i>
                  </button>
                </div>
              </div>
              <div class="card-body">
                <div class="chart">
                  <div id="wholechart" style="min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;"></div>
                </div>
              </div>
              <!-- /.card-body -->
            </div>
            
                   
   </div>

Ajax:

 function sampleeesasw(){
  
   $.ajax({
                type: 'post',
                url: '<?=site_url('report/datas')?>',
                dataType:'json',
                success: function(result) { 
                
                 google.charts.load('current', {'packages':['corechart']});
                    google.charts.setOnLoadCallback(function(){drawChart(result);});
                
                
                
                       function drawChart(result) {
                    
                          var data = new google.visualization.DataTable();
                          data.addColumn('string', 'req');
                           data.addColumn('number', 'total');
                            data.addColumn('number', 'amount');
                         
                          
                          var dataArray =[];
                            $.each(result,function(i,obj){
                            dataArray.push([obj.req,parseInt(obj.total),parseInt(obj.amount)]);
                            
                            });
                            
                            data.addRows(dataArray );

                    
                           var options = {
        seriesType: "line",
 
    };
                    
                    
                        
                    
                          var chart = new google.visualization.ComboChart(document.getElementById('wholechart')).
                          
                    //       Line,Bar,Area,Clomun,pie
                    
                         draw(data, {curveType: "function",
    vAxes: {0: {logScale: false},
            1: {logScale: false, maxValue: 2}},
    series:{
       0:{targetAxisIndex:0},
       1:{targetAxisIndex:1},
       2:{targetAxisIndex:1}}}
          );
                         
                        }
                
                 }
                
                });


}

    
     setInterval(function(){ 
sampleeesasw()
},1000); 

控制器:

public function datas(){
        $data= $this->reports->wholedatachart();
        
        foreach($data as $row){
            $data['req']=$row['req'];
            $data['amount']=$row['amount'];
            $data['total']=$row['total'];
        }
        echo json_encode($data);
        
    }

型号:

  function wholedatachart(){
        
        
        $query=$this->db->query("SELECT timeProcess as 'req', transID as 'total', amount as 'amount' FROM tbl_transaction");
        return $query->result_array();
        
        
    }

我想你可以试试这个,你需要增加每个数据的数量,你可以使用一个临时变量并增加所有数量。

我编辑了答案,对不起我的错。

将您的控制器更改为

public function datas(){
        $data= $this->reports->wholedatachart();
        $tempAmount = 0;
        foreach($data as $row){

            $tempAmount = $tempAmount + $row['amount'];

            $output[]=array(
            'req'        => $timeline['time'],
            'amount'    => $tempAmount,
            'amount'    => $row['amount'],
            );
        
 

        }
        echo json_encode($output);
}

如果你想加总也可以做同样的事情

您可以在 drawChart 函数中进行计算。在该函数中,您可以简单地计算 amount 的总值,然后将其保存在某个变量中并将其传递给您的 dataArray.push(..).

演示代码 :

//suppose data look like this..
var result = [{
  "req": "1",
  "amount": 2000,
  "total": 1000
},{
  "req": "2",
  "amount": 1000,
  "total": 1000
},{
  "req": "3",
  "amount": 1000,
  "total": 1000
}]

function sampleeesasw() {

  /*$.ajax({
    type: 'post',
    url: '',
    dataType: 'json',
    success: function(result) {*/

  google.charts.load('current', {
    'packages': ['corechart']
  });
  google.charts.setOnLoadCallback(function() {
    drawChart(result);
  });
  function drawChart(result) {
  var data = new google.visualization.DataTable();
  data.addColumn('string', 'req');
  data.addColumn('number', 'total');
  data.addColumn('number', 'amount');


  var dataArray = [];
  var total=0 //intialze..
  $.each(result, function(i, obj) {
  total +=parseInt(obj.amount)//add on each iteration
    dataArray.push([obj.req, parseInt(obj.total), parseInt(total)]); //add value here ..
  });

  data.addRows(dataArray);


  var options = {
    seriesType: "line",

  };
  var chart = new google.visualization.ComboChart(document.getElementById('wholechart')).draw(data, {
    curveType: "function",
    vAxes: {
      0: {
        logScale: false
      },
      1: {
        logScale: false,
        maxValue: 2
      }
    },
    series: {
      0: {
        targetAxisIndex: 0
      },
      1: {
        targetAxisIndex: 1
      },
      2: {
        targetAxisIndex: 1
      }
    }
  });

}
  /* }
  });*/

}





setInterval(function() {
  sampleeesasw()
}, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<div class="col-md-12">
  <!-- LINE CHART -->
  <div class="card card">
    <div class="card-header">
      <h3 class="card-title">Stats Per Day</h3>

      <div class="card-tools">
        <button type="button" class="btn btn-tool" data-card-widget="collapse" style="width:30%;">
                    <i class="fas fa-minus"></i>
                  </button>
      </div>
    </div>
    <div class="card-body">
      <div class="chart">
        <div id="wholechart" style="min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;"></div>
      </div>
    </div>
    <!-- /.card-body -->
  </div>


</div>