1

受け取った合計金額から合計費用を差し引いて、合計収益に表示するにはどうすればよいですか?

データは私のデータベースのさまざまなテーブルからのものです。残念ながら、より明確なビューのために写真をアップロードすることはできません。

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>
4

2 に答える 2

0

id など、2 つのテーブル間に関係がある場合:

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'
于 2013-02-02T08:51:36.757 に答える
0

構造/スタイルに関係なく一般的な答えを導き出すつもりですが、基本的には、最初の 2 つのクエリからの戻り値を格納してから、いくつかの計算を行う必要があります。最初にシンプルにして (KISS - Keep It Simple, Stupid)、スタイルからロジックを抽象化しましょう。

<?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/>';
?>

の使用に関する注意$_GET['id']- 最終的に SQL クエリに入る何かを取り込む予定がある場合は、それをエスケープする必要があります。 -real-escape-string.php ですが、一般的には MySQLi ライブラリ ( http://www.php.net/manual/en/book.mysqli.php ) を使用するように切り替える必要があります。標準の mysql 関数は PHP ではサポートされません。

于 2013-02-02T08:34:44.797 に答える