Добавьте сумму каждого столбца и отобразите каждый итог в нижней части таблицы, используя цикл foreach. - PullRequest
0 голосов
/ 30 августа 2018

У меня есть этот цикл foreach, который я использовал для запроса базы данных Microsoft Access, но я не знаю, как суммировать определенный столбец, который имеет значение или не имеет значения, и отображать сумму в последней строке таблицы как «итоговое».

Вот мой код:

$sql = "SELECT EmployeeName, BasisSalary, Bonus FROM tableEmployee";

if ($result = $connectdb->query($sql)) 
{
    $rows = '';             
    echo '<table>';   

    foreach($result->fetchAll(PDO::FETCH_ASSOC) as $row) 
    {                 
        $heading = '';          
        $rows .= '<tr>'; 

        foreach($row as $key => $value) 
        {
            $limitwords = substr($value, 0,50);
            $heading .= '<th>'.$key.'</th>';
            $rows .= '<td>' . $limitwords . '</td>';
        }

        $rows .= '</tr>';
    }

    echo '<tr>'.$heading.'</tr>';
    echo $rows;

    echo '</table>';
}

Мой код выше будет отображать вывод так:

|EmployeeName|BasicSalary| Bonus |
|     A      |   10.00   | 10.00 |
|     B      |   20.00   | 10.00 |
|     C      |   30.00   | 10.00 |

Итак, я хочу отобразить итоговую сумму в виде последней строки таблицы следующим образом:

|EmployeeName|BasicSalary| Bonus |
|     A      |   10.00   | 10.00 |
|     B      |   20.00   | 10.00 |
|     C      |   30.00   | 10.00 | 
|      Total |   60.00   | 30.00 |

1 Ответ

0 голосов
/ 30 августа 2018

Оставьте две переменные $totalBasicSalary и $totalBonus, чтобы сложить для обоих полей базовую зарплату и бонус.

Модифицированный код:

$sql = "SELECT EmployeeName, BasisSalary, Bonus FROM tableEmployee";

if ($result = $connectdb->query($sql)) {
    $totalBasicSalary = $totalBonus = 0;
    echo '<table> '
    . ' <tr>'
    . '<th>EmployeeName</th>'
    . '<th>BasisSalary</th>'
    . '<th>Bonus</th>'
    . '</tr>';

    foreach ($result->fetchAll(PDO::FETCH_ASSOC) as $row) {
        echo '<tr>'
        . '<td>' . substr($row["EmployeeName"], 0, 50) . '</td>'
        . '<td>' . $row["BasisSalary"] . '</td>'
        . '<td>' . $row["Bonus"] . '</td>'
        . '</tr>';

        $totalBasicSalary += $row["BasisSalary"];
        $totalBonus += $row["Bonus"];
    }

    echo '<tr>'
    . '<td>Total</td>'
    . '<td>' . $totalBasicSalary . '</td>'
    . '<td>' . $totalBonus . '</td>'
    . '</tr>'
    . '</table>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...