2016-06-10 112 views
0

控制器如何计算唯一列的总和(列名是总)用笨

这是控制器Page。

public function index() { 
$data = array(
    'year' => $this->year_model->list_all(), 
    'speces' => $this->speces_model->list_all(), 
     ); 
      foreach ($data['year'] as $value): 

       $temp = array(); 
       $temp['year_key'] = $value['year-range']; 
       $temp['year_id'] = $value['id']; 


       $temp['speces_key'] = array(); 
       foreach ($data['speces'] as $value1): 

        $temp['speces_key'][$value1['name']] = $this->db->get_where('expendituredata', array('spacesId' => $value1['id'], 'yearId' => $value['id']))->row_array(); 

       endforeach; 
       $final_result[] = $temp; 

      endforeach; 
      $data['result'] = $final_result; 
      $this->load->view('site/template', $data); 
     } 

型号

public function list_all() { 
     return $this->db->get('year')->result_array(); 
    } 

查看

这是查看文件。

<table> 
<thead> 
     <tr> 
      <th>Year Range</th> 
      <?php foreach ($speces as $value): ?> 
      <th> <?php echo $value['name']; ?></th> 
      <?php endforeach; ?> 
      <th>TOTAL</th> 
      </tr> 
      </thead> 
     <tbody> 
       <?php foreach ($result as $value): ?> 
        <?php $sum = 0; ?> 
        <tr> 
        <td><?php echo $value['year_key']; ?></td> 
       <?php foreach ($value['speces_key'] as $key => $value2): ?> 
        <td><?php echo $value2['data']; ?></td> 
        <?php $sum+= $value2['data']; ?> 
         <?php endforeach; ?> 

        <td><?php echo $sum; ?></td> 
        </tr> 
      <?php endforeach; ?> 

      <tr> 
       <td>Total</td> 
        <?php foreach ($speces as $value6): ?> 
    <?php 
    $this->db->select_sum('data'); 
    $query = $this->db->get_where('expendituredata', array('spacesId' => $value6['id']))->row_array(); 

$totals = $query['data'];          
    ?> 
     <td><?php echo $totals; ?></td>  
     <?php endforeach; ?> 
    </tr> 
</table> 

[Screen Shot]

我的问题:如何计算柱的总和(列名是总).COLUMN名总高于screenshot.so如何计算列的总和显示(列名是总)和总和显示在上面的屏幕截图中的红色箭头

回答

0

我想你想计算不是数据库字段的总列的总和。所以要做到这一点,你可以采取一个变量,在这个变量中你将会引用每一行的列值。

只是初始化一个变量为零。

<?php $sum = $totalSum = 0; ?>

现在的每一行加总和变量的值。 改变你的线,

<td><?php echo $sum; ?></td>

<td><?php $totalSum+=$sum; echo $sum; ?></td>

现在你$totalSum领域将有你的总列的总和。你可以在任何你想要的地方展示它。

已更新 在您的视图文件中使用此项并检查。

<table> 
    <thead> 
      <tr> 
       <th>Year Range</th> 
       <?php foreach ($speces as $value): ?> 
       <th> <?php echo $value['name']; ?></th> 
       <?php endforeach; ?> 
       <th>TOTAL</th> 
       </tr> 
       </thead> 
      <tbody> 
        <?php $totalSum=0; ?> 
        <?php foreach ($result as $value): ?> 
         <?php $sum = 0; ?> 
         <tr> 
         <td><?php echo $value['year_key']; ?></td> 
        <?php foreach ($value['speces_key'] as $key => $value2): ?> 
         <td><?php echo $value2['data']; ?></td> 
         <?php $sum+= $value2['data']; ?> 
          <?php endforeach; ?> 

         <td><?php $totalSum+= $sum; echo $sum; ?></td> 
         </tr> 
       <?php endforeach; ?> 

       <tr> 
        <td>Total</td> 
         <?php foreach ($speces as $value6): ?> 
     <?php 
     $this->db->select_sum('data'); 
     $query = $this->db->get_where('expendituredata', array('spacesId' => $value6['id']))->row_array(); 

    $totals = $query['data'];          
     ?> 
      <td><?php echo $totals; ?></td>  
      <?php endforeach; ?> 
<td><?php echo $totalSum; ?></td>  
     </tr> 
    </table> 

我认为这会解决您的问题。

+0

金额无法计算 – kishankakadiya

+0

你看我的屏幕截图,和我的截图显示红色箭头,合计栏的这个红色箭头显示总和(列姓名总数) – kishankakadiya

+0

@kishankakadiya更新了我的答案,请检查,如果它有效? –

0

尝试使用

<?php $sum = $sum + $value2['data']; ?> 

,而不是

<?php $sum+= $value2['data']; ?> 
+0

如何计算总数 – kishankakadiya