Php 仅在一行中显示总和

Php 仅在一行中显示总和,php,mysql,Php,Mysql,我有一个sql查询: $sql = "SELECT (SELECT SUM(total_pay) FROM workers) total,workers. * FROM workers WHERE projects_id = ".$id; 我想将数据显示到表行中: $stmt = mysqli_query($con, $sql) or die($sql."<br/><br/>".mysqli_errno($con)); <?php while($rows = my

我有一个sql查询:

$sql = "SELECT (SELECT SUM(total_pay) FROM workers) total,workers. * FROM workers WHERE projects_id = ".$id;
我想将数据显示到表行中:

$stmt = mysqli_query($con, $sql) or die($sql."<br/><br/>".mysqli_errno($con));
<?php while($rows = mysqli_fetch_array($stmt)){ ?>
    <form action="update_del.php" method="post">
    <th>Payments</th>
    <th>Date</th>
    <th>Project</th>
    <th width="25%">Delete</th>

    <tr>

      <?php while($rows = mysqli_fetch_array($stmt)){ ?>
    <tr>
      <td align="center"><?php echo $rows['total_pay']?></td>
      <td align="center"><?php echo $rows['date_of_pay']?></td>
      <td align="center"><?php echo $name['project_name'] ?></td>
      <td align="center"><!--<input class="imgClass_insert" type="submit" name="submit1" value="" />-->
        <input class="imgClass_dell" type="submit" onClick="return confirm('Are you sure you want to delete?')" name="delete_workers" value=""/>


    </td>
  </tr>

    </tr>

  <tr>
    <td colspan="3">Total <?php echo $name['project_name']?></td>
    <td><?php echo $rows['total'] ?></td>
  </tr>
    <?php } ?>

</table>
$stmt=mysqli_query($con,$sql)或die($sql)。

。mysqli_errno($con)); 付款 日期 项目 删除 全部的

问题是,付款总额在显示每一行时都是重复的,因此如何在表的末尾只显示一次总额查询?是否应将其放在仅为总和指定的单个查询中?

如果我正确理解您的问题,则这可能有助于您根据需要在最后几行生成总和

"SELECT total_pay, date_of_pay,project_name
 FROM workers WHERE project_id=".$id."
UNION
 SELECT 'ALL', SUM(total_pay)
 FROM workers";

您可以从查询中删除
total
,并使用PHP进行计算,也可以简单地将总数存储在
while
语句之外。差不多

<?php 

$total = 0;
while($rows = mysqli_fetch_array($stmt)){ 

  $total = $rows['total'];

  ?>
  <tr>
    <td align="center"><?php echo $rows['total_pay']; ?></td>
    <td align="center"><?php echo $rows['date_of_pay']; ?></td>
    <td align="center"><?php echo $name['project_name']; ?></td>
    <td align="center">
      <!--<input class="imgClass_insert" type="submit" name="submit1" value="" />-->
      <input class="imgClass_dell" type="submit" onClick="return confirm('Are you sure you want to delete?')" name="delete_workers" value=""/>   
    </td>
  </tr>
<?php } ?>

<tr>
  <td colspan="3">Total <?php echo $name['project_name']; ?></td>
  <td><?php echo $total; ?></td>
</tr>

</table>

为确保小数精度,在添加时应使用intval(),如:$total+=intval($rows['total_pay']);
<?php 

$total = 0;
while($rows = mysqli_fetch_array($stmt)){ 

  $total += $rows['total_pay'];
  ?>
  <tr>
    <td align="center"><?php echo $rows['total_pay']; ?></td>
    <td align="center"><?php echo $rows['date_of_pay']; ?></td>
    <td align="center"><?php echo $name['project_name']; ?></td>
    <td align="center">
      <!--<input class="imgClass_insert" type="submit" name="submit1" value="" />-->
      <input class="imgClass_dell" type="submit" onClick="return confirm('Are you sure you want to delete?')" name="delete_workers" value=""/>   
    </td>
  </tr>
<?php } ?>

<tr>
  <td colspan="3">Total <?php echo $name['project_name']; ?></td>
  <td><?php echo $total; ?></td>
</tr>