使用php显示类别,子类别和子子类别

时间:2017-08-16 17:13:03

标签: php mysql categories

我正在网站和该网站上工作并希望显示类别>子类别>子类别。

正在显示类别。但我也想显示子类别。

这是类别代码

  <select>
        <option>Select Category</option>
              <?php 
              $query="select * from mydb";
              $result=mysqli_query($connect,$query);
              while($r=mysqli_fetch_assoc($result))
              {
              ?>
        <option value="<?php echo $r['id']?>"><?php echo $r['title']?></option>                                    
  <?php } ?>
  </select>

显示如下: - enter image description here

想要显示像这样: - enter image description here

1 个答案:

答案 0 :(得分:0)

首先,您需要一种在数据库中存储类别层次结构的方法。一种简单的方法(当然不是最好的方法,因为它依赖于排序)是在表中添加一个整数列,指定该类别有多少&#34; sub&#34; -prefixes。我假设此列名为level

其次,所需的输出使用复选框而不是选项列表。要获得此类别/子类别输出,您可以尝试:

<input type="checkbox" style="margin-left: 0px" /> Category <br />
<input type="checkbox" style="margin-left: 20px" /> Sub-Category <br />

要生成上述内容,请使用

替换代码
<?php 
$query="select * from mydb";
$result=mysqli_query($connect,$query);
while($r=mysqli_fetch_assoc($result))
{
    $id = $r['id'];
    $indent = $r['level'] * 20;
    $title = $r['title'];
    echo "<input type=\"checkbox\" value=\"$id\" style=\"margin-left: ${indent}px\" />$title<br />";    
}                              
?>

我建议添加其他列(例如my_order)并添加用select * from mydb order by my_order asc替换查询以控制类别的排序。