2011-10-06 149 views
0

現在我有一個自動捐贈系統。數據庫日誌記錄

當他們捐贈,產品ID和他們的用戶名被存儲在數據庫中,當他們retreive他們的項目,他們從數據庫

我在想什麼做的是.... 記錄刪除他們的用戶名,他們有多少次捐贈,以及有多少,他們已經捐

這是當前記錄

  mysql_query("INSERT INTO donation (username, time, productid, price, tickets) VALUES ('" . $user . "', '" . $date . "', '" . $prodid . "', " . $amount . ", " . $amountTickets . ");"); 

什麼,我希望它做的是 提交到一個新的表,「金額「 的用戶名,1,$花費 ,如果他們已經在那裏 添加+1至第2場(贈次),$花+新$花費

我不是很聰明,當談到MySQL的所以任何幫助,將不勝感激

摘要 我想要一個SQL查詢,將在一個稱爲表一個新的領域(金額) 如果該字段已經存在,添加到域在它 領域: 用戶名,捐款時間,捐款金額

基本上,如果有人叫弗蘭克捐贈$ 10

坦誠,1,10

如果坦率捐出另外20

坦誠,2,30

如果joe是

後捐贈15坦率地說,2,30

joe,1,15

回答

0

聽起來像在家工作....

select `username`, count(`username`), sum(`price`) as `amounts` 
from donation 
group by username 

原諒我的報價可能是錯誤的,因爲我通常使用具有不同的引用到MySQL的Postgres。我建議您閱讀有關所選數據庫中聚合函數的在線手冊。

+0

所以它會是這樣? (「用戶名,金額,價格)VALUES('」。count($ user)。「',」。「。」,「。sum($ amount)。」);「) ; – Travis

+0

不,請使用查詢從捐贈中提取彙總數據。我假設你的捐贈表記錄了捐贈事件的歷史。因此,每次有捐款時,請使用您的插入語句,並在每次需要彙總時使用類似於我的查詢的內容。我可能會對你的要求做出一些不正確的假設,所以我可能會使用錯誤的方法。 –

0

爲什麼你不保留捐贈表中的數據,只是添加一個額外的列讓我們說狀態和價值是無可爭辯或索賠。一旦用戶聲稱您只需要將其狀態更新爲CLAIMED即可。

要顯示無人認領捐贈

SELECT * FROM donation WHERE status = 'UNCLAIMED'; 

要檢索用戶捐贈

SELECT username, count(username),sum(amount) FROM table WHERE status = 'CLAIMED' GROUP BY username