[英]How to efficiently SUM and SUBTRACT from two conditionally linked tables using PHP and MySQL
[英]How to subtract from two tables in php mysql using variables
我從我的第一個表(收入)中得到了總計,我想從另一個表(exp)查詢中減去它。 所有這些代碼都在同一頁面上。 那么,如何使用這些查詢變量在同一頁面上但在另一個位置中減去並回顯結果呢? 查詢1
<?php
include("db.php");
$query = "SELECT source, SUM(income.inamount) FROM income";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Total Sales = N". $row['SUM(inamount)'];
echo "<br />";
}
?>
<?php
include("db.php");
$query = "SELECT amount, SUM(exp.amount) FROM exp";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Total Expenditure = N". $row['SUM(amount)'];
echo "<br />";
}
?>
檢查數據類型是否設置為int。
$myVar = $row['SUM(inamount)'] - $row['SUM(amount)'];
echo $myVar;
另一種方法是將兩個值分配給它們自己的變量,然后執行計算:
$totalSales = $row['SUM(inamount)'];
$expense = $row['SUM(amount)'];
$actual = $totalSales - $expense;
echo $actual;
使用var_dump()會告訴您$ row變量中實際保留了哪些值。 這將為您提供有關是否將數據正確地從數據庫拉入變量的線索。
var_dump($row['SUM(inamount)']);
var_dump($row['SUM(amount)']);
要檢查的另一件事是是否設置了實際變量,因此總體而言,解決方案可能如下所示:
<?php
include("db.php");
//query 1
$query_income = "SELECT source, SUM(income.inamount) FROM income";
$result_income = mysql_query($query_income) or die(mysql_error());
while($row = mysql_fetch_array($result_income)){
$inamount = $row['inamount'];
}
//query 2
$query_exp = "SELECT amount, SUM(exp.amount) FROM exp";
$result_exp = mysql_query($query_exp) or die(mysql_error());
while($row = mysql_fetch_array($result_exp)){
$amount = $row['amount'];
}
if(isset($inamount, $amount)) {
$actual = $amount - $inamount;
echo $actual // obviously you format $actual to your preferred output
}
else {
echo "Variable data not set";
}
?>
回顯總銷售額后,將$ row ['SUM(inamount)']的值分配給變量,您可以使用該變量執行減法:
...
$var=$row['SUM(inamount)'];
...
//after printing total expenditure
echo "Total Profit = ". ($var-$row['SUM(amount)']);
不過有2個觀察結果:1. mysql libary已被棄用,請改用mysqli或PDO。 2.如果這兩個代碼在同一頁面中,則無需兩次包含db.php。
我最好的建議應該是只進行一個查詢並處理查詢中的減法,您可以按照以下步驟進行:
<?php
include("db.php");
$query = "SELECT inc.source, SUM(inc.inamount) as in_amount, SUM(exp.amount) as out_amount, SUM(inc.inamount)-SUM(exp.amount) as total FROM income as inc, exp";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Total Sales = N". $row['in_amount'];
echo "<br />";
echo "Expenditure Sales = N". $row['out_amount'];
echo "<br />";
echo "Total after substraction = N". $row['total'];
echo "<br />";
}
?>
但是,如果您嚴格希望使用變量進行減法,則可以按照以下步驟進行:
<?php
include("db.php");
$query = "SELECT source, SUM(inamount) as in_amount FROM income";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
$total_sales = $row['in_amount'];
echo "Total Sales = N". $row['in_amount'];
echo "<br />";
}
?>
<?php
include("db.php");
$query = "SELECT SUM(amount) as out_amount FROM exp";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
$total_expenditure = $row['out_amount'];
echo "Total Expenditure = N". $row['out_amount'];
echo "<br />";
}
?>
<?php
$total = $total_sales - $total_expenditure;
echo "Total after substract = N". $total;
echo "<br />";
?>
由您決定要使用什么選項,但是我建議不要進行兩個不同的查詢來獲取兩個值,因為它們可能會在一個時間范圍內更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.