Kalbimde, ben bu süper basit bir özyinelemeli bir çözüm olması gerektiğini hissediyorum, ama ben hemen grok olamaz.
Ben bir kapatma tablo olarak SQL saklanan bir ağaç var. Ağaç gibi görünüyor: (1 (2 (3), 4)), ve dilleri MySQL, SQL ve PHP 5.3 vardır.
Kapatma tablo şudur:
+----------+------------+
| ancestor | descendant |
+----------+------------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 3 |
+----------+------------+
Ben oldukça kolay atalarını sorgulayabilirsiniz:
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 |
+----+-----------+
Nasıl kolayca bu verilerin PHP ile bir ağaç inşa edebilirsiniz? Ben MySQL veri daha çekmek için bir akıllı sorgu kullanabilir miyim?