我正在尝试使用数据库表中的类别和子类别动态填充下拉菜单。我的问题是我无法找到循环子类别的方法,因此它们显示在正确的类别下。
在我的SQL数据库中,我有一个名为'Categories'的表,其中有3列:id,category,subcategory。子类别列中的子类别由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>
答案 0 :(得分: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");
。
希望它有所帮助!