2011-09-02 64 views
0

我有这个问题。我有一个表(下面)的组。这是一种递归的表格,因为每个新组可以在同一个表中有一个父组。所以有效地,我们有一个group> subgroup> subgroup> subgroup kinda模型。Foreach组和子组动态循环

**id | label | parent_id** 
1 | Ceiling| 0 
2 | Window | 0 
3 | Wall | 0 
4 | Small | 2 
5 | Large | 2 
6 | Large| 1 
7 | Paint | 4 

因此,这会给一些看起来像这样:

窗口>小窗口>涂料

我已经创建了用于创建组的形式表,但它的数据库查询和循环,我遇到麻烦实际上获取数据到上述格式。有点吃不消了我的大脑来处理:(

我做这种格式,因为我希望这是在组完全控制和亚类的深度。

我真的没有代码举一个例子,因为它更解决我以后的问题

**更新**

更具体一点:我想列出具有0组中的每个父组(有这么一群在parent_id中)并且它是直接子组,那么该组即时子组(如果有的话)等等,等等。

+0

你想做些什么?检索一个组,它是父母?一个小组和它的孩子?所有的团体和他们的孩子? – arnaud576875

+0

使用函数的递归调用 – azat

+0

您的意思是面包屑? http://stackoverflow.com/questions/1321250/creating-breadcrumbs-structure-from-sql-query –

回答

1

如果你想这样做,你将不得不把整个表格取到PHP,然后用php执行搜索。

然而,有一个类似的方法,你可以怎么managet这样的结构,这是非常贝尔描述如下: http://www.sitepoint.com/hierarchical-data-database-2/

+0

谢谢,我现在检查一下。它看起来和我的问题非常相似 – iamjonesy

+0

是的,我几个月前为自己做了同样的事情。它的工作原理很好,因为您不必每次都从数据库中删除evertyhing。 还有另一种解决方案,包含多个查询。但从表现来看这并不好。在PHP递归中,每当新查询时,只选择id = parent_id,直到到达顶端(parent_id == 0)。我不推荐这一个,但我将它展示为可能性。 –