나는 이것을 해결하려고하는 몇 가지 문제에 직면 해있다. 나는 계좌 차트를 가지고 있으며 돈 칼럼을 요약하려고합니다.Mysql/PHP - 계정 차트 - 부모 계정의 요약
category_table
- id
- parent_id
- category
이 ** 내가 계정 차트 얼마나 깊은 모른다 : 내 테이블 '범주'자동 relathionsip 있습니다. 그것은 1,2,3,4,5 ... 여러 레벨을 가질 수 있습니다.
내가 원하는 무엇 : 여기
은 예입니다Category Name |$
-------------------------------
Category 1 |160.00
Category 1.1 |130.00
some expense | 50.00
some expense | 80.00
Category 1.2 | 30.00
some expense | 10.00
some expense | 20.00
-------------------------------
Category 2 |160.00
Category 2.1 |150.00
some expense |100.00
some expense |150.00
Category 2.1 | 70.00
some expense | 50.00
some expense | 20.00
-------------------------------
내가 무엇을 가지고 : 나는 PHP에서이 재귀 함수를 시도했습니다
Category Name |$
-------------------------------
Category 1 | 0.00
Category 1.1 | 0.00
some expense | 50.00
some expense | 80.00
Category 1.2 | 0.00
some expense | 10.00
some expense | 20.00
-------------------------------
Category 2 | 0.00
Category 2.1 | 0.00
some expense |100.00
some expense |150.00
Category 2.1 | 0.00
some expense | 50.00
some expense | 20.00
-------------------------------
하지만, 작동하지 않음 =/
(210)function display_children($parent) {
$sql = "SELECT c.id, c.category,
(SELECT COUNT(*) FROM category c1 WHERE c1.parent_id = c.id) As Total,
(SELECT SUM(p.value) FROM payables p WHERE p.category_id = c.id) As TotalToPay
FROM category c
WHERE c.parent_id = {$parent}
ORDER BY c.category";
$result = mysql_query($sql);
$ret = "<ul>";
$totalcategory = 0;
while ($row = mysql_fetch_assoc($result)) {
if ($row['Total'] > 0) {
$totalcategory = $totalcategory + (empty($row['TotalToPay']) ? 0 : $row['TotalToPay']);
$ret .= "<li><a href='#" . $row['id'] . "'>" . $row['category'] . " - " . $totalcategory . "</a>";
$ret .= display_children($row['id']);
$ret .= "</li>";
} elseif ($row['Total']==0) {
$totalcategory = ($totalcategory + empty($row['TotalToPay']) ? 0 : $row['TotalToPay']);
$ret .= "<li><a href='" . $row['id'] . "'>" . $row['category'] . " - " . $totalcategory . "</a></li>";
} else;
}
$ret .= "</ul>";
return $ret;
}
echo display_children(0);
는
그것은 나를 보여줍니다
Category 1 - 0
Category 1.1 - 0
Category 1.2 - 0
expense 1 - 25.90
expense 2 - 0
expense 3 - 3.80
Category 2 - 0
Category 2.1 - 0
Category 2.2 - 0
Category 2.3 - 0
Category 3 - 0
Category 3.1 - 52.00
... 어떤 생각? ... 감사합니다 :)
우리가 재귀 적 기능을 시도해보십시오. – Kermit
나는 –