2015-07-19 61 views
-1

我與後續數據表的數據庫:PHP和MySQL領域的PHP和回聲

sales 
expenses 
taxes 
earnings 

當我賣一些產品將其添加到銷售一個項目,同樣要費用,同時我加費,稅銷售和收入時也會自動添加。它們位於相同的數據庫但不同的表中。

我需要將這些字段彙總在一起。我這樣做,無需逐一的問題是這樣的:

<?php 
$query = mysqli_query($db, "SELECT SUM(total) AS `total` FROM `sales`"); 
while($result = mysqli_fetch_assoc($query)){ 
echo number_format($result['total'],0,',','.');} 
?> 

<?php 
$query2 = mysqli_query($db, "SELECT SUM(expense) AS `expense` FROM `expenses`"); 
while($result2 = mysqli_fetch_assoc($query2)){ 
echo number_format($result2['expense'],0,',','.');} 
?> 

如何總結這兩個和回聲結果例子:

sales - expense = value ? 

回答

1
<?php 
    $query = mysqli_query($db, "SELECT SUM(total) AS `total` FROM `sales`"); 
    $query2 = mysqli_query($db, "SELECT SUM(expense) AS `expense` FROM `expenses`"); 
    $total_sales = 0; 
    $total_expenses = 0; 
    while($result = mysqli_fetch_assoc($query)){ 
     $total_sales = $total_sales + $result['total']; 
     echo number_format($result['total'],0,',','.'); 
    } 
    while($result2 = mysqli_fetch_assoc($query2)){ 
     $total_expenses = $total_expenses + $result['total']; 
     echo number_format($result2['expense'],0,',','.'); 
    } 
?> 

總和將是$total_sales-$total_expenses

+0

很好,非常感謝 –

0

你確定你會將這兩者合計?

至少有很好的一點你做這些事情的分離。首先,邏輯非常清楚。其次,如果你有很多這樣的數據,當你分別求和時,這些數據不會相互影響。因爲當你選擇數據並進行一些操作時,如果數據不是很大,那就沒關係。但如果數據量很大,數據庫和CPU以及內存都會有很大的壓力。 第三,當你在數據庫中選擇時,雖然數據庫可以做,但不建議進行諸如sum,sub,division和multiplication之類的操作。因爲這些操作確實在浪費數據庫和計算機的性能。

無論如何,你仍然想這樣做。然後你可以嘗試左右關節或右關節。你可以使用一些外鍵連接這兩個表,然後你可以做你想做的事情。