Php 如何从不同的表中添加2个总计?

Php 如何从不同的表中添加2个总计?,php,html-table,sum,Php,Html Table,Sum,如何从收到的总金额中减去总费用,并将其显示在总收入中 数据来自我的数据库中的不同表。。不幸的是,我无法上传图片以获得更清晰的视图 TOTAL AMOUNT RECEIVED || 15610 TOTAL EXPENSES || 11300 TOTAL REVENUES || (this must be equal to TOTAL AMOUNT RECEIVED - TOTAL EXPENSES) 这是我的密码: <table width="383" border="1" bord

如何从收到的总金额中减去总费用,并将其显示在总收入中

数据来自我的数据库中的不同表。。不幸的是,我无法上传图片以获得更清晰的视图

TOTAL AMOUNT RECEIVED || 15610

TOTAL EXPENSES || 11300

TOTAL REVENUES ||  (this must be equal to TOTAL AMOUNT RECEIVED - TOTAL EXPENSES)
这是我的密码:

<table width="383" border="1" bordercolor="#00CCFF">
<tr>
<td width="245" bgcolor="#0099FF">TOTAL AMOUNT RECIEVED</td>
<td width="128" bgcolor="#FFFFFF">
            <?php
            include("confstudents.php");
            $id = $_GET['id'];
            $query = "SELECT id, SUM(1stPayment + 2ndPayment + 3rdPayment + 4thPayment) um_payment FROM student_payments"; 
            $result = mysql_query($query) or die(mysql_error());
            // Print out result
            while($row = mysql_fetch_array($result)){
            echo "" . $row['sum_payment'];
            echo "<br/>";
            }
            ?>
</td>
</tr>
<tr>
<td bgcolor="#0099FF">TOTAL EXPENSES</td>
<td bgcolor="#FFFFFF">
            <?php
            include("confexpenses.php");
            $id = $_GET['id'];
            $query = 'SELECT SUM(piece * price) tprice FROM expenses'; 
            $result = mysql_query($query) or die(mysql_error());
            while($res = mysql_fetch_assoc($result)){
            echo " " . $res['tprice']; " ";
            }
            ?>
</td>
</tr>


<tr>
<td bgcolor="#0099FF">TOTAL REVENUES</td>
<td bgcolor="#FFFFFF">
            <?php
            include("totalrev.php");
            ?>
</td>
</tr>
</table>

我将独立于结构/样式计算出一般答案,但本质上,您希望存储前两个查询的返回值,然后进行一些计算。让我们让初吻变得简单——保持简单、愚蠢,并从风格中抽象出逻辑

<?php
$query = "
SELECT
    id,
    SUM(1stPayment + 2ndPayment + 3rdPayment + 4thPayment) AS sum_payment
FROM
    student_payments"; 

$result = mysql_query($query) || die(mysql_error());

// Create a variable to store the sum of payments
$sum_payment = 0;

// Print out result
while($row = mysql_fetch_array($result))
{
    echo "" . $row['sum_payment'];
    echo "<br/>";

    $sum_payment += (int)$row['sum_payment'];
}

$query = 'SELECT SUM(piece * price) tprice FROM expenses'; 
$result = mysql_query($query) or die(mysql_error());

// Variable to store the expenses
$expenses = 0;

while($res = mysql_fetch_assoc($result))
{
    echo " " . $res['tprice']; " ";
    $expenses += $res['tprice'];
}

// Calculate the difference
$total_rev = $sum_payments - $expenses;

echo '<br/>', $total_rev, '<br/>';
?>

关于使用$\u GET['id']的注意事项-如果您计划引入一些最终将进入SQL查询的内容,您应该对其进行转义:使用mysql\u库,使用mysql\u real\u escape\u字符串,但一般来说,您应该切换到使用MySQLi库,因为它更安全,最终PHP将不支持标准mysql函数。

如果两个表之间存在关系,例如id:

SELECT 
SUM(r.stPayment) as RECIEVED, sum(e.piece * e.price) as EXPENSES
FROM
student_payments as r,
expenses as e
WHERE r.id = e.id and r.id = '$id'

在第一个循环中,将$row['sum\u payment']添加到$total\u received。在第二个循环中,将$res['tprice']添加到$total_费用中。最后,计算$total_revenues=$total_received-$total_expenses。它不起作用,它显示11300,等于11300,在中断后,另一个11300带有负号。$sum_payment和$expenses在每个while循环后的值是多少?其中r.id='$id'和r.id='$id'可以发布学生工资的表结构吗?因为学生的id具有学生id和费用中的id从1开始自动递增。只需删除其中的r.id=e.id和r.id='$id',然后查看结果是否符合预期