2014-09-03 122 views
0

我一直在環顧四周,似乎無法找到答案,並希望得到任何幫助。所有付款的MYSQL總值字段

總之,我有兩張表,付款和成員。

我已經完成了以下工作,查找所有付款的成員標識符與付款標識列中的標識。

<?php 
include("../connect.php"); 
$result = mysql_query("SELECT Payments.value, Payments.date, Payments.method, Payments.id, 
Payments.expiredate 
FROM Payments 
INNER JOIN members 
ON Payments.id=members.id;"); 
$num = mysql_num_rows ($result); 

if ($num > 0) { 
$i=0; 
while ($i < $num) { 
$value = stripslashes(mysql_result($result,$i,"Payments.value")); 
$date = stripslashes(mysql_result($result,$i,"Payments.date")); 
$method = stripslashes(mysql_result($result,$i,"Payments.method")); 
$id = stripslashes(mysql_result($result,$i,"Payments.id")); 
$expiredate = stripslashes(mysql_result($result,$i,"Payments.expiredate")); 
echo ' 
<tr> 
<td align="left">member' .$id. '</td> 
<td align="left">' .$method. '</td> 
<td align="left">' .$date. '</td> 
<td align="right">&pound;' .$value. '</td> 
<td align="right">' .$expiredate. '</td> 
</tr> 
'; 
++$i; }} else { $row = 'no payments'; } 
mysql_close(); 
?> 

此迴應支付ID與會員ID相匹配的所有會員付款。

問題現在我需要執行以下操作: 1)總計增加值,以便我可以看到有多少錢已經通過'tills'並理想地按月分組(payments.date),儘管我可能能夠去做一個月的自己。

例如所以它回聲

Payments.value - Payments.id - Payments.date 
Payments.value - Payments.id - Payments.date 
Payments.value - Payments.id - Payments.date 
TOTAL Payments value 

任何幫助,將不勝感激。請保持解答/幫助儘可能簡單,因爲我還是新的SQL/PHP的,但享受吧:)

+0

這裏是一個可以幫助你的帖子。它顯示了交叉表查詢,這是一個先進的概念,一旦你掌握了它,它就很容易處理。 http://evolt.org/node/26896/首先編寫查詢並使其在SQL客戶端中工作,然後將其添加到PHP。此外,您需要立即退出使用'mysql_'函數*,因爲它們已被棄用。你應該切換到'mysqli_'或'PDO'。 – 2014-09-03 13:14:12

+0

謝謝,我查看了鏈接,我承認它對我有點困惑。將堅持下去。 – James 2014-09-03 13:32:22

回答

0

而不是使用下面的查詢

SELECT Payments.value, Payments.date, Payments.method, Payments.id, 
Payments.expiredate 
FROM Payments 
INNER JOIN members 
ON Payments.id=members.id 

和遍歷結果集,你可以試試使用以下查詢

select sum(a.value), a.method, date_format(a.date,'%y-%m') as paydate 
FROM Payments a INNER JOIN members b ON a.id = b.id 
group by paydate,a.method; 

上述查詢將根據付款日期和付款方式對數據進行求和。