2014-09-03 4 views
0

나는 주변을 둘러 보았고 이에 대한 답을 찾지 못했고 어떤 도움을 주셔서 감사합니다.MYSQL 총 지불 금액 필드

요약하면 나는 지불 테이블과 회원 테이블 두 개를 가지고 있습니다.

회원 ID가 지불 ID 열의 ID와 일치하는 모든 지불을 찾으려면 아래에서 수행했습니다.

<?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) 총액이 올라가서 얼마나 많은 돈이 '경작'을 거쳐 이상적으로 월 단위로 그룹화되어 있는지 (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로 전환해야한다. –

+0

감사합니다. 링크를 살펴 봤는데 조금 혼란 스럽습니다. 그것을 붙들 것이다. – James

답변

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; 

위의 쿼리는 지불 날짜와 지불 방법에 따라 데이터를 합산합니다.