我有这样的数据库:
id menuname parent_id
-----+----------+-----------
1 a 0
2 b 0
10 a/xx 1
11 a/xo 1
20 b/xx 2
21 b/xx 2
我只有父菜单ID的前两行。我得到数字1和2.如何从parent_id
。
ID 10来自parent_id
1和0
ID 11来自parent_id
1和1
ID 20来自parent_id
2和0
ID 21来自parent_id
2和1
我想把它作为php中的一个表单
parent_id=0
(1和2)答案 0 :(得分:0)
如果我理解得很好你就需要这个
SELECT t2.* FROM table_name t1
JOIN table_name t2 ON t1.id = t2.parentId
WHERE t1.id = (1 or 2 or whatever ID)
答案 1 :(得分:0)
您只需使用order by执行SQL语法。
SELECT * FROM table_name ORDER BY parent_id
答案 2 :(得分:0)
尝试在初始值上进行循环
foreach($parentValues as $eachValue){ // $parentValues will contain 1 and 2 loop first for 1
// Fetch from database against column parent_id for $eachValue First value is 1 and against which user will get 10 and 11
}
答案 3 :(得分:0)
如果我正确理解您要执行的操作,则需要先从数据库中获取所有行。我会按menuname
订购,以便稍后在选择菜单中按顺序排列。
SQL(基本概念)
SELECT id, menuname, parent_id
FROM table_name
ORDER BY menuname
<强> PHP 强>
$result = //... Array of data from the SQL
$menu = [];
foreach ($result as $item) {
$parentId = $item['parent_id'];
if ($parentId > 0) {
$menu[$parentId]['children'][] = $item;
} else {
$menu[$parentId] = $item;
}
}
这应该为您提供了一系列精美的菜单项,您可以在HTML中循环输出菜单。如果您希望在选择父级以在下一个菜单中显示子选项时链接菜单,则需要使用JavaScript来执行此操作。