In my heart, I feel that there must be a super-simple recursive solution for this, but I cannot immediately see it.
I have a tree stored in SQL as a closure table. The tree looks like this: (1 (2 (3), 4)), and the languages ββare MySQL SQL and PHP 5.3.
The closing table is as follows:
+----------+------------+
| ancestor | descendant |
+----------+------------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 3 |
+----------+------------+
I can query ancestors quite easily with:
SELECT descendant AS id, GROUP_CONCAT(ancestor) as ancestors FROM
closure GROUP BY (descendant);
+
| id | ancestors |
+
| 1 | 1 |
| 2 | 2,1 |
| 3 | 3,1,2 |
| 4 | 4,1 |
+
How can I easily build a tree in PHP with this data? Can I use a more intelligent query to pull more data from MySQL?
source
share