2013-12-13 48 views
2

好吧,我有一個MySQL表命名爲「sales_records」像這樣:得到這樣值的總和在一列每個值在另一列

User saleType 
+-------+-------+------+ 
| Jeff | Sale_Closed | 
+-------+-------+------+ 
| Jeff | Sale_null | 
+-------+-------+------+ 
| Sean | sale_closed | 
+-------+-------+------+ 
| Jeff | sale_closed | 
+-------+-------+------+ 
| Sean | sale_closed | 
+-------+-------+------+ 
| Mark | Sale_null | 
+-------+-------+------+ 
| Mark | sale_closed | 
+-------+-------+------+ 
| Josh | sale_closed | 
+-------+-------+------+ 
| Josh | sale_closed | 
+-------+-------+------+ 

我想每個saleType每個計數用戶..換句話說,Jeff有2個「sale_closed」和1個「sale_null。Mark有1個」sale_closed「和1個」sale_null「,依此類推......

並將其存儲到數組中..(Json )像這樣。:

{"jeff":{"sale_closed":2,"sale_null":1},"sean":{"sale_closed":2},"Mark":{"sale_closed":1, "sale_null":1},"Josh":{"sale_closed":2} 

好吧,這是我的atte MPT:

<?php 
// assuming database connection has already been established.. 

$result = mysql_query("SELECT DISTINCT `USER' FROM `sales_records`"); 
while($row = mysql_fetch_assoc($result)) { 
    $user_array[] = $row['User']; 
} 

foreach ($user_array as $user) { 
    $json_array[$user] = mysql_query("SELECT saleType FROM sales_records WHERE user='$user'"); 

    while ($row = mysql_fetch_array($json_array[$user])) { // AND HERE IS WHERE i GET STUCK!!! 
     $json_array[$user][$username][] = $row['saleType']; // I DON'T KNOW WHERE TO GO FROM HERE... 
    } 
} // AM I APPROACHING THIS CORRECTLY?.. 

//... 
// Once I have all the 'saleType's for each user, maybe I could use: 
array_count_values()... or something. 

?> 

回答

5

你可以得到所有你在一個單一的查詢需要的數據:

SELECT user, saleType, count(*) totalSales FROM sales_record 
GROUP BY user, saleType 

這將返回3列所有的結果,應該是很容易轉成JSON。

+2

Omg !!哈哈!而且我正在努力工作!謝謝!看起來像我更好地增加和練習我的Mysql技能..真棒thx! :) – MElliott

相關問題