如何从关联数组构建多级菜单。

时间:2013-08-26 10:38:38

标签: php mysql pdo associative

拜托,我需要帮助。 我想构建一个多级菜单,所以我想在smarty模板中使用foreach循环遍历一个关联数组。 首先,我有这个mysql输出: enter image description here

现在我尝试从中获取一个关联数组,所以我试过了 fetchAll(PDO::FETCH_ASSOC),但因为列名相同,所以它给出了右栏中的值:

Array ( [0] => Array ( [id] => 7 [name] => Beta 1-3 glucan ) [1] => Array ( [id] => 8 [name] => Okinawa Fucoidan ) 

如果您有任何想法如何处理此表以获得多维菜单,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:1)

使用FETCH_NUM或在查询中创建别名。

答案 1 :(得分:0)

我假设您有JOIN个表,而且两个表都有idname(或者您加入同一个表)。您需要做的是在查询中使用AS

例如:

而不是:SELECT * FROM table JOIN table ON [...]

写:SELECT t1.id AS level1_id, t1.name AS level1_name, t2.id AS level2_id, t2.name AS level2_name FROM table t1 JOIN table t2 ON [...]

此解决方案会在每行中为您提供4个不同的字段名称(level1_idlevel1_namelevel2_idlevel2_name)。