Не удалось получить сумму каждой строки в столбце в таблице php mysql - PullRequest
0 голосов
/ 23 сентября 2018

введите описание изображения здесь введите описание изображения здесь У меня есть таблица базы данных с несколькими столбцами и данными во многих строках.Я хочу получить сумму всех данных всех данных в каждой строке и поместить их в столбец «Всего».Однако общий итог отображается в каждом ряду, а не общий итог каждого ряда.

Я представляю код, как показано ниже

<?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();
?>  

Вывод кода

Пожалуйста, предложите любые изменения в коде, чтобы я мог получитьсумма для каждой строки в итоговом столбце.

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

Обратите внимание, что нормализованная среда обычно выглядит примерно так ...

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_no, district_block) являются компонентами PRIMARY KEY

0 голосов
/ 24 сентября 2018

Используйте союзников после каждой суммы () как-то.Последний результат вы получите, когда уберете общее количество из цикла while.сделайте ваш первый запрос под 2nd Query и передайте идентификатор в качестве параметра.

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

}

Надеюсь, это поможет вам.

0 голосов
/ 23 сентября 2018

Используйте этот запрос для суммы строк элементов столбца

 SELECT Col1+Col2+Col3+Col4 as I_want_this_figure from DistrictData
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...