获取活动记录中的变量总数

时间:2016-03-14 17:37:49

标签: php codeigniter activerecord totals

好的,我有一个名为$total_bal的变量,它是由存储在变量x and y

中的两个查询构成的简单等式的答案

例如

$y = $row->amount_one;
$z = $row->amount_two;

$total_bal = $z + $y;

但我在amount_oneamount_two中有很多条目。

因为我正在使用codeigniters活动记录

我试过

echo $this->db->count_all($total_bal);

但是这个剂量不起作用,是否有最佳方法可以做到这一点?

所以我想了一个方法来添加所有$total_bal,为了更多的煽动我的代码请看下面。

<?php
if (isset($records)) : foreach ($records as $row) :


    $x = $row->amount_two;
    $y = $row->ammount_one;

   $total_bal = $z + $y;
   ?>

    <table>
        <tbody>
        <tr>
            <td>amount one</td>
            <td>amount two</td>
        </tr>

        <tr>
            <td>
               <?php echo $x;?>
            </td>

            <td>
               <?php echo $y;?>
            </td>
            <td>
               <?php echo $$total_bal;?>
            </td>
        </tr>

<!--        <tr>-->
<!--            <td>-->
<!--               --><?php //echo $this->db->count_all('$total_bal'); ?>
<!--            </td>-->
<!--        </tr>-->
        </tbody>
    </table>

<?php endforeach; ?>

<?php else : ?>
    <h3>You Have No Accounts</h3>
    <h4>Why No Add A Account?</h4>
<?php endif; ?>

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用累加器变量。例如,$grandTotal变量。您在0之外将其设置为foreach,在循环的每次迭代中,您将$rowTotal添加到$grandTotal。最后,当循环结束时,您将获得所有行总数的总值。

这种方法的好处是它不需要对数据库进行任何额外的调用,因为你已经循环遍历值来显示它们,所以累积它们是最小的处理。

<?php if (isset($records)) : ?>
<table>
  <thead>
    <tr>
      <th>Amount One</th>
      <th>Amount Two</th>
      <th>Total</th>
    </tr>
  </thead>
  <tbody>
  <?php $grandTotal = 0; ?>
  <?php foreach ($records as $row) : ?>
    <?php 
      // Add field values to get row total
      $rowTotal = $row->amount_one + $row->amount_two;
    ?>
    <?php 
      // Add row total to grand total
      $grandTotal += $rowTotal;
    ?>
    <tr>
        <td>
           <?php echo $row->amount_one;?>
        </td>

        <td>
           <?php echo $row->amount_two;?>
        </td>
        <td>
           <?php echo $rowTotal;?>
        </td>
    </tr>
    <?php endforeach; ?>
    <tr>
      <td></td>
      <td></td>
      <td><?php $grandTotal; ?></td>
    </tr>
  </tbody>
</table>
<?php else : ?>
  <h3>You Have No Account</h3>
  <h4>Why Not Add An Account?</h4>
<?php endif;?>