无法获取php mysql表中列中每行的总和

83qze16e  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(341)

在此处输入图像描述在此处输入图像描述我有一个数据库表,其中有多个列和多行数据。我想得到每一行中所有数据的总和,并将其放入“total”列中。但是,总计显示在每行中,而不是每行的总计。
我提出的代码如下

<?php 
include 'config.php';
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$add=mysqli_query($con,"SELECT Col1,    Col2,   Col3,   Col4,   
sum(Col1 +  Col2 +  Col3 +  Col4) AS Total, SUM(Col1), SUM(Col2), 
SUM(Col3), SUM(Col4)
from DistrictData WHERE District = 'District1' ");
while($row=mysqli_fetch_array($add))
{
$Total = $row['Total'];
$SUM1=$row['SUM(Col1)'];
$SUM2=$row['SUM(Col2)'];    
$SUM3=$row['SUM(Col3)'];
$SUM4=$row['SUM(Col4)'];
$Total2= $SUM1 + $SUM2+ $SUM3+ $SUM4  ;
}
}
$sql="SELECT * FROM DistrictData WHERE District = 'District1'"; $counter = 0;
$result = $con->query($sql);
?>
<body>
<table >
<tr>
<td>Sr No.</td>
<td>Deptt</td>
<td>Data Description</td>
<td>Unit</td>
<td>Year</td>
<td>Blocks in District</td>
</tr>
<tr>
<td>Total</td>
<td>Col1</td>
<td>Col2</td>
<td>Col3</td>
<td>Col4</td>
</tr>
<?php
while($rows = $result->fetch_assoc())
{
?>
<tr> 
<td><?php echo ++$counter; ?></td>
<td><?php echo $rows['Data']; ?></td>
<td><?php echo $rows['Description']; ?></td>
<td><?php echo $rows['Unit']; ?></td>
<td><?php echo $rows['Year']; ?></td>
<td> <?php echo $Total ?></td>
<td><?php echo $rows['Col1']; ?></td>
<td><?php echo $rows['Col2']; ?></td>
<td><?php echo $rows['Col3']; ?></td>
<td><?php echo $rows['Col4']; ?></td>
</tr>
<?php
}
?>
<tr>
<td>Total:</td>
<td> <?php echo $Total2 ?></td>
<td> <?php echo $SUM1 ?></td>
<td> <?php echo $SUM2 ?></td>
<td> <?php echo $SUM3 ?></td>
<td> <?php echo $SUM4 ?></td>
</tr>
</table>
<?php    
$con->close();
?>

代码的输出
请建议代码中的任何更改,以便我可以得到总计列中每行的总和。
提前谢谢

neekobn8

neekobn81#

在每个sum()之后使用盟友。当从while循环中去掉total时,您将得到最后一个结果。在第二个查询下执行第一个查询,并将id作为参数传递。

while($row = mysqli_fetch_array($query)){

   $total_query = mysqli_query($con,"SELECT Col1,    Col2,   Col3,   Col4,   
   SUM(Col1 +  Col2 +  Col3 +  Col4) as Total from DistrictData WHERE id='row[yourID]'");

   $total_result = mysqli_fetch_array($total_query);

   NOW you can populate your data here

}

希望这对你有帮助。

pcww981p

pcww981p2#

请注意,正常化的环境通常看起来更像这样。。。

sr_no district_block val
    1              1   5
    1              2   6
    1              3   5
    1              4   8
    2              1 226
    2              2 112
    2              3   4
    2              4   5
    3              1   2 
    3              2   7
    3              3   3
    3              4   8

... 其中(sr\u no,district\u block)是主键的组件

q3qa4bjr

q3qa4bjr3#

对列元素的行和使用此查询

SELECT Col1+Col2+Col3+Col4 as I_want_this_figure from DistrictData

相关问题