如何从数据库中获取菜单及其子类
这是我的菜单
<ul class="sub-menu">
<li><a href="product-category.html">Product 1</a></li>
<li><a href="product-category.html">Product 2</a>
<ul class="sub-menu">
<li><a href="product-category.html">P 21</a></li>
<li><a href="product-category.html">P 22</a></li>
<li><a href="product-category.html">P 23</a></li>
<li><a href="product-category.html">P 24</a></li>
</ul>
</li>
<li><a href="product-category.html">Product 3</a></li>
<li><a href="product-category.html">Product 4</a></li>
</ul>
产品1,产品2,产品3是类别表中的类别。 P 21,P 22,P 23,P 24是子类别中产品2的子类别。 所有类别不具有子类别。 保存在子类别表中的类别ID。
CREATE TABLE IF NOT EXISTS category
( cid
int(11)NOT NULL AUTO_INCREMENT, cname
varchar(255)NOT NULL,PRIMARY KEY( cid
))ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1;
CREATE TABLE IF NOT EXISTS subcategory
( sid
int(11)NOT NULL AUTO_INCREMENT, sname
varchar(255)NOT NULL, cid
int(11)NOT NULL,PRIMARY KEY( sid
))ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1;
我怎样才能显示它在菜单中通过单一查询从MySql中获取数据?
请向我展示数据库的体系结构。一般情况下,需要2个周期的条件,第一个是类别,第二个是子类别。 file.php
<ul class="sub-menu">
<?php
foreach($array_category as $category):?>
<li><a href="<?php echo $category['link'];?>"><?php echo $category['name'];?></a>
<?php if( $exist_subcategory):?>
<ul>
<?php foreach($array_subcategory as $subcategory):?>
<li><a href="<?php echo $subcategory['link'];?>"><?php echo $subcategory['name'];?></a>
<?php endforeach;?>
</ul>
<?php endif;?>
</li>
<?php endforeach;?>
</ul>
唯一的问题是进入正确的条件需要知道的数据库的条件。
您可以通过替换您的表名和所有特定的详细信息来使用此查询
SELECT * FROM `parenttable` p WHERE p.foreignkey IN (SELECT c.foreignkey FROM `childtable` c WHERE c.foreignkey = p.foreignkey)
链接地址: http://www.djcxy.com/p/59699.html
上一篇: how to fetch menu from database with its subcategory
下一篇: mysql relation slow