首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php mysql中使用变量从两个表中减去

如何在php mysql中使用变量从两个表中减去
EN

Stack Overflow用户
提问于 2015-10-02 20:40:41
回答 3查看 2.7K关注 0票数 1

我从我的第一个表(income)中得到了这个总数,我想从另一个表(Exp)查询中减去它。所有这些代码都在同一个页面上。那么,我如何使用这些查询变量来减去和回显同一页面上但在另一个位置的结果呢?查询1

代码语言:javascript
运行
复制
<?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 />";
}
?>
EN

回答 3

Stack Overflow用户

发布于 2015-10-02 20:48:30

检查数据类型是否设置为int。

代码语言:javascript
运行
复制
$myVar = $row['SUM(inamount)'] - $row['SUM(amount)'];
echo $myVar;

另一种方法是将这两个值赋给它们自己的变量,然后执行计算:

代码语言:javascript
运行
复制
$totalSales = $row['SUM(inamount)'];
$expense = $row['SUM(amount)'];

$actual = $totalSales - $expense;

echo $actual;

使用var_dump()将告诉您$row变量中实际保存了哪些值。这将为您提供有关数据是否正确地从数据库中提取到变量中的线索。

代码语言:javascript
运行
复制
var_dump($row['SUM(inamount)']);
var_dump($row['SUM(amount)']);

另一件要检查的事情是,实际变量是否设置得如此全面,解决方案可能如下所示:

代码语言:javascript
运行
复制
<?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";
 }
?>
票数 1
EN

Stack Overflow用户

发布于 2015-10-02 20:46:39

在回显总销售额后,将$row‘’SUM(Inamount)‘的值赋给一个变量,您可以使用该值执行减法:

代码语言:javascript
运行
复制
...
$var=$row['SUM(inamount)'];
...
//after printing total expenditure
echo "Total Profit  = ". ($var-$row['SUM(amount)']);

2.观察结果: 1. mysql库已被弃用,请使用mysqli或PDO。2.如果两段代码在同一页中,则不需要包含两次db.php。

票数 0
EN

Stack Overflow用户

发布于 2015-10-03 00:09:07

我最好的建议应该是只做一个查询,然后处理查询中的减法,你可以这样做:

代码语言:javascript
运行
复制
<?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 />";
}
?>

但是,如果您严格地想要使用变量进行减法运算,那么您可以这样做:

代码语言:javascript
运行
复制
<?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 />";
?>

使用哪个选项由您决定,但我建议不要进行两个不同的查询来获得两个值,因为它们可能会在一个时间范围内发生变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32907408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档