Почему общая сумма не работает в коде php? - PullRequest
0 голосов
/ 14 июля 2020

Когда я генерирую общую сумму, отображается только промежуточная сумма последней строки. I В этом коде есть ошибка. Общая сумма не отображается. Общий итог всегда показывает ошибку. Общая сумма не указана. Пожалуйста, помогите мне. При добавлении такого количества услуг он имеет другую цену. В этом случае общая сумма не отображается. Показывается только стоимость последней услуги. Я также добавил скрин ниже. Проверьте это, чтобы узнать подробности.

<table class="table table-bordered" width="100%" border="1"> 
    <tr>
        <th colspan="3">Services Details</th>   
    </tr>
    <tr>
        <th>#</th>  
        <th>Service</th>
        <th>Cost</th>
    </tr>

    <?php
    $ret = "select tblservices.ServiceName, tblservices.ServicePrice  
        from  tblinvoice 
        join tblservices on tblservices.ID=tblinvoice.ServiceId 
        where tblinvoice.BillingId=:invid";
    $query1 = $dbh -> prepare($ret);
    $query1->bindParam(':invid',$invid,PDO::PARAM_STR);
    $query1->execute();

    $results = $query1->fetchAll(PDO::FETCH_OBJ);

    $cnt = 1;
    if($query1->rowCount() > 0)
    {
        foreach($results as $row1)
        {               ?>

            <tr>
            <th><?php echo $cnt;?></th>
            <td><?php echo $row1->ServiceName?></td>    
            <td><?php echo "₹".$subtotal=$row1->ServicePrice?></td>
            </tr>

        <?php $cnt = $cnt+1;
        }
        $gtotal += $subtotal;
    } ?>

    <tr>
        <th colspan="2" style="text-align:center">Grand Total</th>
        <th><?php echo "₹".$gtotal?></th>   
    </tr>
</table>

Скриншот

1 Ответ

0 голосов
/ 14 июля 2020

$gtotal += $subtotal; должно быть в foreach l oop, чтобы суммировать его во время итерации.

<?php
    $ret = "select tblservices.ServiceName, tblservices.ServicePrice  
        from  tblinvoice 
        join tblservices on tblservices.ID=tblinvoice.ServiceId 
        where tblinvoice.BillingId=:invid";
    $query1 = $dbh -> prepare($ret);
    $query1->bindParam(':invid',$invid,PDO::PARAM_STR);
    $query1->execute();

    $results = $query1->fetchAll(PDO::FETCH_OBJ);

    $cnt = 1;
    if($query1->rowCount() > 0)
    {
        foreach($results as $row1)
        {               ?>

            <tr>
            <th><?php echo $cnt;?></th>
            <td><?php echo $row1->ServiceName?></td>    
            <td><?php echo "₹".$subtotal=$row1->ServicePrice?></td>
            </tr>

        <?php $cnt = $cnt+1;
              $gtotal += $subtotal;
        }
       
    } ?>
...