我一直致力于这个新项目,我需要有关这种情况的帮助。 我有两个表的sql数据库:菜单和子菜单。
表的结构是:
菜单:id |标题|为了
子菜单:id |标题| parentId的
当我想生成下面的菜单项和子菜单项时,我使用两个简单的查询,是否有任何更简单的方法加入table.Basically我想要这个:
菜单项
+ Submenu Item 1
+ Submenu Item 2
+ Submenu Item 3
菜单项
+ Submenu Item 1
+ Submenu Item 2
+ Submenu Item 3
答案 0 :(得分:0)
假设数据库看起来像这样
CREATE TABLE menu
(`id` int, `title` varchar(15), `order` int)
;
INSERT INTO menu
(`id` , `title` , `order` )
VALUES
(1, 'itstuff', 100),
(2, 'book', 200),
(3, 'toy', 300),
(4, 'car', 400),
(5, 'clothes', 500),
(6, 'stuff', 600),
(7, 'otherstuff', 700),
(8, 'otherotherstuff', 900)
;
CREATE TABLE submenu
(`id` int, `title` varchar(10), `order` int, `parentid` int)
;
INSERT INTO submenu
(`id` , `title` , `order` , `parentid` )
VALUES
(1, 'laptop', 100, 1),
(2, 'mouse', 200, 1),
(3, 'printer', 300, 1),
(4, 'lcd screen', 400, 1),
(5, 'volvo', 500, 4),
(6, 'toyota', 600, 4),
(7, 'bmw', 700, 4),
(8, 'ford', 900, 4)
;
<强>查询强>
SELECT
submenu.title
FROM
submenu
INNER JOIN menu ON submenu.parentid = menu.id
WHERE
menu.title = "itstuff"
此查询将返回属于菜单“itstuff”
的所有子菜单<强>结果强>
[title]
laptop
mouse
printer
lcd screen
用于创建菜单的PHP代码
<?php
// Create connection
$db = new mysqli('localhost', 'username', 'password', 'database_name');
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
};
// Perform queries
$sql1 = 'select * from menu';
$result1 = $db->query($sql1);
echo "<ul>";
foreach ($result1 as $menu)
{
echo "<li>".$menu["title"];
echo "<ul>";
$menu_title = $menu["title"];
$sql2 = 'SELECT
submenu.title
FROM
submenu
INNER JOIN menu ON submenu.parentid = menu.id
WHERE
menu.title = "'.$menu_title.'"';
$result2 = $db->query($sql2);
foreach ($result2 as $submenu)
{
echo "<li>".$submenu["title"]."</li>";
}
echo "</ul>";
echo "</li>";
}
echo "</ul>";
$db->close();
?>
结果应该如下所示
<ul><li>itstuff<ul><li>laptop</li><li>mouse</li><li>printer</li><li>lcd screen</li></ul></li><li>book<ul></ul></li><li>toy<ul></ul></li><li>car<ul><li>volvo</li><li>toyota</li><li>bmw</li><li>ford</li></ul></li><li>clothes<ul></ul></li><li>stuff<ul></ul></li><li>otherstuff<ul></ul></li><li>otherotherstuff<ul></ul></li></ul>
希望有所帮助
答案 1 :(得分:0)
这不是jQuery! 标签错了。