如何从子数据库中获取菜单

时间:2015-02-18 12:23:38

标签: php html mysql yii menu

这是我的菜单

              <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>

Product1,Product2,Product3是类别表中的类别。 P 21,P 22,P 23,P 24是子类别中产品2的子类别。 所有类别都没有子类别。 类别ID保存在子类别表中。

CREATE TABLE IF NOT NOT EXISTS category(   cid int(11)NOT NULL AUTO_INCREMENT,   cname varchar(255)NOT NULL,   主要关键(cid) )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1;

CREATE TABLE IF NOT NOT EXISTS subcategory(   sid int(11)NOT NULL AUTO_INCREMENT,   sname varchar(255)NOT NULL,   cid int(11)NOT NULL,   主要关键(sid) )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1;

如何通过单一查询从MySql中获取数据来在菜单中显示它?

2 个答案:

答案 0 :(得分:0)

请给我看一下数据库的架构。一般来说,条件需要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>

唯一的问题是输入正确条件的条件需要知道数据库ahritecture。

答案 1 :(得分:0)

您可以通过替换表名和所有特定详细信息来使用此查询

SELECT * FROM `parenttable` p WHERE p.foreignkey IN (SELECT c.foreignkey FROM `childtable` c WHERE c.foreignkey = p.foreignkey)