2013-12-14 56 views
1

我有一組信息狀態和總計。我想看看如何獲​​得每個州的所有總數的總和。PHP比較時獲得數組值的SUM

我知道我必須使用循環,但我不確定哪個 - 我該怎麼辦?

這是我到目前爲止。它從數據庫中創建數組。

$WorkFind = mysql_query(
    "SELECT Customers.State, WorkOrders.Total 
    FROM WorkOrders 
    INNER JOIN Customers 
    ON WorkOrders.CID=Customers.ID 
    WHERE WorkOrders.Type <> 'Warranty' 
    AND (WorkOrders.Status <> 'Closed' 
    OR WorkOrders.Status <> 'Cancelled') 
    AND WorkOrders.TransferID='0' 
    ORDER BY Customers.State ASC"); 

while ($Work = mysql_fetch_array($WorkFind)) { 
} 

while循環創建了數組,但我不確定要放入哪個數組。

我使用PHP 5.3和MYSQL 5.2

+2

代碼示例,請儘快給 –

+0

我們陣列的一部分,你想要的解決方案。 –

+1

你的數組是怎樣的? ['foreach']有什麼問題(http://www.php.net/foreach)? – kero

回答

1

試試這個:

$WorkFind = mysql_query("SELECT Customers.State AS State, WorkOrders.Total AS Total -- ..."); 

$total = array(); 

while ($Work = mysql_fetch_array($WorkFind)) { 
    $state = $Work['State']; 

    if (!isset($total[$state])) { 
    $total[$state] = 0; 
    } 

    $total[$state] += $Work['Total']; 
} 

// format as simple table 

echo '<table><tr><th>State</th><th>Total</th></tr>'; 

foreach ($total as $state_name => $state_total) { 
    echo '<tr><td>' . $state_name . '</td><td>' . $state_total . '</td></tr>'; 
} 

echo '</table>'; 
+0

這隻給了我所有的工作總數。我需要每個州的總數。 – JukEboX

+0

對不起,我錯過了這一點。你可以使用一個數組,我將它添加到上面的代碼中。 –

+0

還有一個問題。如果它像這樣出現,我該如何格式化它。數組([CT] => 35774.56 [DE] => 1779 [FL] => 9519.87 [MA] => 11875.82 [MD] => 87722.98 [NJ] => 212389.21 [NY] => 194354.32 [PA] = > 31449.43 [RI] => 2872.56 [VA] => 61398.72) – JukEboX