如何对表格最后一卷的列求和? [重复]

问题描述 投票:0回答:3

我想对表格中的列年龄进行求和,如下图所示,但我不确定如何实现这一点。我知道我需要使用用户的选择总和(年龄),但我该把它放在哪里?

总金额

我做了以下事情:

if (isset($_POST['date1']) && isset($_POST['date2'])) {
    
    $sql = "SELECT * FROM user WHERE signup_date BETWEEN '".$_POST['date1']."' AND '".$_POST['date2']."'";
    $result = mysqli_query($conn, $sql);
    
    if (mysqli_num_rows($result) > 0) {
        
        $x = 0;
        while ($row = mysqli_fetch_assoc($result)) {

            $output = '<tr>
                            <td>'.++$x.'</td>
                            <td>'.$row["name"].'</td>
                            <td>'.$row["email"].'</td>
                            <td>'.$row["age"].'</td>
                            <td>'.$row["signup_date"].'</td>
                        </tr>';

            echo $output;
        }
php mysql
3个回答
0
投票

您可以探索这两个选项:

1.) 在循环结果时,您可以决定对“年龄”列的值进行求和,并在 while 循环结束时显示总年龄值

2.) 在

signup_date
表上编写另一个查询,使用 SUM() SQL 函数对年龄列进行求和

我们开始...

选项一:

$ageTotal = 0;

while ($row = mysqli_fetch_assoc($result)) {

    $ageTotal += $row['age']; //adds each age value to the previous age
    $output = '<tr>
                   <td>'.++$x.'</td>
                   <td>'.$row["name"].'</td>              
                   <td>'.$row["email"].'</td>              
                   <td>'.$row["age"].'</td>           
                   <td>'.$row["signup_date"].'</td>               
               </tr>';
    echo $output;
}

/* 您可以从 $ageTotal 变量访问总年龄。

echo $ageTotal;

*/

选项二:

$sqlAgeTotal = "SELECT SUM(age) AS ages FROM user WHERE signup_date BETWEEN '".$_POST['date1']."' AND '".$_POST['date2']."'";

$resultAgeTotal = mysqli_query($conn, $sqlAgeTotal);

$rowAgeTotal = mysqli_fetch_assoc($resultAgeTotal);

$ageTotal = $rowAgeTotal['ages'];

/* 您可以从 $ageTotal 变量访问总年龄。

echo $ageTotal;

*/


0
投票

我想你想问的是,在这段代码中,你应该在哪里编写年龄列的总和代码,并且你知道如何编写总和代码,但面临着语法问题,你必须在哪里编写总和代码才能获得它在前端的所有列年龄行之后打印,如果是则按照这个答案

 $x = 0;
        while ($row = mysqli_fetch_assoc($result))
        
        {//this loop will fetch all data from db 

            $output = '<tr>
                            <td>'.++$x.'</td>
                            <td>'.$row["name"].'</td>
                            <td>'.$row["email"].'</td>
                            <td>'.$row["age"].'</td>
                            <td>'.$row["signup_date"].'</td>
                        </tr>';

            echo $output;

            //here is the closing of loop and after this loop closure code for printing the sum of age column is written.
        }

        $output = '<tr>
                            <td>'.hi'</td>
                            <td>'.hi.'</td>
                            <td>'.hi'</td>
                            <td>'.sum of age'</td>
                            <td>'.hi.'</td>
                        </tr>';

            echo $output;

-1
投票

您可以运行单独的查询来获取年龄字段的总和。像这样:

$sqlSum = "SELECT SUM(age) AS sum_age FROM user WHERE signup_date BETWEEN '".$_POST['date1']."' AND '".$_POST['date2']."'";
$resultSum = mysqli_query($conn, $sqlSum);
$rowSum = mysqli_fetch_assoc($resultSum);
$sum = $rowSum['sum_age'];

//here you can use the $sum variable value

如果您不想运行新查询,请像这样更改代码:

$sum = 0;
while ($row = mysqli_fetch_assoc($result)) {
    $sum += $row['age'];
    $output = '<tr>
                        <td>'.++$x.'</td>
                        <td>'.$row["name"].'</td>
                        <td>'.$row["email"].'</td>
                        <td>'.$row["age"].'</td>
                        <td>'.$row["signup_date"].'</td>
               </tr>';

    echo $output;
}

//here you can use the $sum variable value
© www.soinside.com 2019 - 2024. All rights reserved.