如何在PHP While循环中打破同一结果的输出?

时间:2015-05-15 06:39:34

标签: php mysql

例如,在while循环中,结果将按照这样的车辆编号顺序显示

Vehicle num    total_amount
TEST V 1234    500
TEST V 1234    500
TEST V 1234    500
TEST w 785     1000
TEST w 785     1000
TEST Z 589     700
TEST Z 589     700
TEST Z 589     700

But i want to like this.

Vehicle num    total_amount
TEST V 1234    500
TEST V 1234    500
TEST V 1234    500

Vehicle No: TEST V 1234
Total amount: 1500

TEST w 785     1000
TEST w 785     1000

Vehicle No: TEST w 785
Total amount: 2000


TEST Z 589     700
TEST Z 589     700
TEST Z 589     700

Vehicle No: TEST Z 589
Total amount: 2100

我希望显示像使用php + mysql的dis 如何解决这个问题,有谁能说出来?

这是我的代码示例?

<table class="table table-table-striped accord-content even" width="100%" style="clear:both;" id="textttt">
  <thead>
    <tr class="bg-green" style="background:#DBB74E!important; color:#698602 !important" >
      <th>S No</th>
      <th>Owner Name</th>
      <th>Truck Number</th>
      <th>total</th>
    </tr>
  </thead>
  <?php

$query_all = mysql_query("select * from testing where ownername='" . $_POST['ownername'] . "' and dc_date between '".$weekenddate."'   and   '" . $_POST['datewe'] . "' and status='Verified' order by truckk_number ASC");

        while ($fet_all = mysql_fetch_array($query_all)) {  ?>
  <tr class="accord-content even bg-gray" style="color:#698602 !important;">
    <td><?php echo $fet_all['id']; ?></td>
    <td><?php echo $fet_all['ownername']; ?></td>
    <td><?php echo $fet_all['truckk_number']; ?></td>
    <td><?php echo $fet_all['total']; ?></td>
  </tr>
  <?php   } ?>
</table>

我想要显示车辆总数和车辆编号。

2 个答案:

答案 0 :(得分:1)

因为你的问题中没有代码,我在这里使用伪代码

Set track = null, total = 0
Loop through your collection
    If track is not null and current item vehicle_num is different from track
        Print current vehicle_num
        Print total
        Set total = 0
    else
        Update total = total + current total_amount
    endif
    Set track = current item vehicle_num
    Print current item info
endloop

对于您的代码,请考虑替换此代码:

while ($fet_all = mysql_fetch_array($query_all)) {  ?>
  <tr class="accord-content even bg-gray" style="color:#698602 !important;">
    <td><?php echo $fet_all['id']; ?></td>
    <td><?php echo $fet_all['ownername']; ?></td>
    <td><?php echo $fet_all['truckk_number']; ?></td>
    <td><?php echo $fet_all['total']; ?></td>
  </tr>
  <?php   } ?>

到此:

<?php

#other code

$track = null;
$total = 0;

while ($fet_all = mysql_fetch_array($query_all)) :?>    
  <?php if ($track !== null && $track !== $fet_all['truckk_number']): ?>
    <tr>
        <td colspan="3">Vehicle No:</td>
        <td><?php echo $track; ?></td>
    </tr>
    <tr>
        <td colspan="3">Total:</td>
        <td><?php echo $total; ?></td>
    </tr>
    <?php $total = $fet_all['total']; ?>
  <?php else: ?>
    <?php $total += $fet_all['total'];  ?>
  <?php endif; ?>
  <tr class="accord-content even bg-gray" style="color:#698602 !important;">
    <td><?php echo $fet_all['id']; ?></td>
    <td><?php echo $fet_all['ownername']; ?></td>
    <td><?php echo $fet_all['truckk_number']; ?></td>
    <td><?php echo $fet_all['total']; ?></td>
  </tr>
  <?php $track = $fet_all['truckk_number']; //add this line ?>
<?php endwhile; ?>
<?php if ($total > 0): ?>
    <tr>
        <td colspan="3">Vehicle No:</td>
        <td><?php echo $track; ?></td>
    </tr>
    <tr>
        <td colspan="3">Total:</td>
        <td><?php echo $total; ?></td>
    </tr>
<?php endif; ?>

答案 1 :(得分:-1)

您的查询是这样的......

SELECT *, SUM(total_amount)  FROM YOUR_TABLENAME  GROUP BY Vehicle_num_COLUMN_NAME

使用GROUP BY子句。