0

我正在尝试使用数据库表中的类别和子类别动态填充下拉菜单。我的问题是我想不出一种方法来遍历子类别,以便它们显示在正确的类别下。

在我的 SQL 数据库中,我有一个名为“类别”的表,其中包含 3 列:id、类别、子类别。子类别列中的子类别由 3 个冒号分隔(Artists:::Childcare:::Classes:::Event)。

我在 html 中使用无序列表来填充下拉菜单。

<ul id="menu">
<li><a href="#">button</a>
<ul>

<?php 

while($allCategories=mysql_fetch_assoc($resultre1)){ ?>

<li><a href="#"><div class="whatever"<?php print      
$relanguage_tags[$allCategories['category']];?> 
<?php if(in_array($relanguage_tags[$allCategories['category']],$reCategory)) 
print "selected='selected'"; ?> >
<?php print $relanguage_tags[$allCategories['category']]; ?></div></a> 

<?php } ?>

<ul>

<?php 
 if($ptype=="showOnMap" || $ptype=="viewFullListing" || $ptype=="home" || $ptype==""){
$reCategoryString=getCommaStringFromArray($reCategory);
$reqr2="select * from $categoryTable where id like '%' ".getRealValue($reCategoryString,"reCategory");
$resultre2=mysql_query($reqr2);
?>

<?php 

while($allSubCategories=mysql_fetch_assoc($resultre2)){ 
$subCatList=explode(":::",$allSubCategories['subcategories']);
$subCatSize=sizeof($subCatList);
for($i=0;$i<$subCatSize;$i++){

?>

<li><a href="#"><div class="whatever"<?php print $relanguage_tags[$subCatList[$i]];?>' 
<?php if(in_array($relanguage_tags[$subCatList[$i]],$reSubcategory)) print   "selected='selected'"; ?> ><?php print $relanguage_tags[$subCatList[$i]]; ?></div></a></li>
<?php }

} ?>

<?php } ?>



         </ul>
        </li> 
 </ul>
</li>


</ul>
4

1 回答 1

0
$subCatList=explode(":::",$allSubCategories['subcategories']);
$subCatSize=count($subCatList);
for($i=0;$i<$subCatSize;$i++){
      echo "<li>".$subCatList[$i]."</li>";
?>

如果这不是答案,则表示我没有很好地理解您的问题。

编辑

创建一个显示类别表中所有子类别的函数:

function subCategories($category){ 
     $subCategories="";
      while($r=mysql_fetch_assoc(mysql_query("select * from ".$category.""))){
         $subCategories.="<li>".$r['subCategory']."</li>";
      }
     return $subCategories;
}

echo subCategories("Housing");并在每个类别标签中像这样调用这个函数。希望它有所帮助!

于 2012-06-23T20:09:23.063 回答