2014-02-19 2 views
-2

경량 예산 응용 프로그램 만들기. 하나의 데이터베이스와 두 개의 테이블이 있습니다.PHP를 사용하여 두 개의 MYSQL 테이블에서 정보 가져 오기

거래 - 날짜, 금액, 공급 업체, CATEGORY_ID (한 자리 수) CATEGORIES - (I 각에 지출 할 수있는 금액) ID, 이름, 제한

나는 현재 합계를 인쇄하려면 아래의 PHP를 사용하고

모든 트랜잭션의 총 금액이 카테고리별로 그룹화됩니다. 내가하고 싶은 일은 각 그룹화 된 합계뿐만 아니라 해당 "이름"과 "제한"을 표시하는 것입니다. 또한 "value_sum"을 "limit"에서 뺀 값을 표시하도록 수학을 쓰고 싶습니다.

예 :

식료품 - 지출 : -12.00 제한 : 200.00 왼쪽 : 188.00
임대 - 지출 : -3.00 제한 : 200.00 왼쪽 : 188.00
외식 - 지출 : -9.00 제한 : 200.00 왼쪽 : 188.00
유틸리티 - 지출 : -45.00 제한 : 200.00 왼쪽 : 188.00

<?php 

$result = mysql_query("SELECT SUM(amount) AS value_sum FROM TRANSACTIONS group by category") 
or die(mysql_error()); 

$number = value_sum; 

while($row = mysql_fetch_array($result)) { 

    echo "<div class='col1'>"; 
    echo round ($row['value_sum'], 2); 
    echo "</div>"; 
} 


?> 
+0

'선택 카테고리, 합 (금액) ... 그룹을 그룹으로 분류합니다 '... 당신이 가져 오지 않은 것을 표시 할 수 없습니다. –

+1

그래서 분명히 두 테이블에서 데이터를 가져와야한다는 것을 이해하는 것처럼 보일 수 있지만 예제 코드에서는이를 수행하지 않는 것을 보여주지 않습니다. 테이블에 가입하려했지만 성공하지 못 했습니까? 그 시도를 보여줄 수 있습니까? –

+0

당신은 두 개의 ** 데이터베이스 ** (하나는 TRANSACTIONS라고 부름)를 가지고 있다고 말합니다. 그러나 당신은'SELECT ... FROM TRANSACTIONS'을 선택했습니다. ** 두 개의 ** 테이블 **을 의미 했습니까? –

답변

0

테스트하지,하지만 난 트릭 할 것 가입 단순한 추측 :

SELECT SUM(`t1`.`amount`) AS `value_sum`, `t2`.`name`, `t2`.`limit` 
FROM `transactions` AS `t1` 
JOIN `categories` AS `t2` 
    ON `t1`.`category_id` = `t2`.`category` 
GROUP BY `category`; 
0

당신은 다음과 같이 사용할 수 있습니다 : 그것은 MySQL을의 예약어이기 때문에, 나는 매우 제한하는 제한 VAR을 변경

SELECT 
    (select cat.name from CATEGORIES where cat.id = tran.category_id limit 1) as Categorie, 
    SUM(tran.amount) as Spent, 
    (select cat.limite from CATEGORIES where cat.id = tran.category_id limit 1) as Limite, 
    (select cat.limite from CATEGORIES 
     where cat.id = tran.category_id limit 1)-(SUM(tran.amount)) AS Lefted 
    FROM TRANSACTIONS tran 
    group by tran.category_id; 

을; 나는 또한 당신의 테이블 설명처럼 category_id를 사용한다.

+0

확인. 그래서이 작품! 그러면 어떻게하면 각 예산의 "이름"을 CATEGORY에 포함시킬 수 있습니까? \t \t \t \t \t \t \t Categorie로, \t \t \t \t \t SUM (tran.amount) 지출로 (ID = tran.category_id 제한 (1) 카테고리의 이름을 선택) \t \t \t를 선택 : 이것은 내 최신 코드가 , \t \t \t \t \t \t \t \t \t \t (들 카테고리 차기 매우 제한 여기서 매우 제한로서 ID = tran.category_id 한계 1) \t \t \t \t \t \t \t \t \t \t (카테고리의 선택 기간 한정 여기서 식 tran.category_id 한도 1) - (SUM (트란.양)) TRANSACTIONS 트란 tran.category_id 의해 \t \t \t \t \t \t \t \t \t \t GROUP FROM Lefted AS \t \t \t \t \t \t \t \t \t \t; –

관련 문제