如何在选择列表中显示类别,子类别,子子类别 – php / mysql?

前端之家收集整理的这篇文章主要介绍了如何在选择列表中显示类别,子类别,子子类别 – php / mysql?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想在选择列表(下拉列表)中显示类别,子类别和子子类别,就像wordpress在其管理面板显示的方式一样.首先看看我的数据库表(tb_categories) –

我想要HTML格式的以下输出

“无”和“未分类”这两个项目在代码中是硬编码的.我想知道如何使用选择列表选项按层次顺序显示类别及其子类别.

我正在尝试使用以下SQL查询,其中我使用自联接.这里是 –

SELECT
    `cat`.`category_name` AS 'category name',`cat2`.`category_name` AS 'parent category'
FROM
    `tb_categories` AS `cat`
LEFT JOIN `tb_categories` AS `cat2` ON `cat`.`category_parent` = `cat2`.`category_id`
ORDER BY
    'parent category'

它给出的输出是 –

Array
(
    [0] => Array
        (
            [0] => My Parent Category
            [category name] => My Parent Category
            [1] => 
            [parent category] => 
        )

    [1] => Array
        (
            [0] => Parent Category 2
            [category name] => Parent Category 2
            [1] => 
            [parent category] => 
        )

    [2] => Array
        (
            [0] => Parent Category 3
            [category name] => Parent Category 3
            [1] => 
            [parent category] => 
        )

    [3] => Array
        (
            [0] => My Child Category
            [category name] => My Child Category
            [1] => My Parent Category
            [parent category] => My Parent Category
        )

    [4] => Array
        (
            [0] => Sports
            [category name] => Sports
            [1] => 
            [parent category] => 
        )

    [5] => Array
        (
            [0] => Cricket is best
            [category name] => Cricket is best
            [1] => Sports
            [parent category] => Sports
        )

    [6] => Array
        (
            [0] => AJAX
            [category name] => AJAX
            [1] => 
            [parent category] => 
        )

    [7] => Array
        (
            [0] => hockey is best
            [category name] => hockey is best
            [1] => Sports
            [parent category] => Sports
        )

)

我不知道甚至不确定如何在该选择列表中显示上述数据.我们怎么做?我们怎样才能使用连接呢?如果我们使用连接,那么我们是否需要一些数组来存储和排序结果?还有我们如何在循环中使用多个查询来做到这一点?哪种方法最好?

最佳答案
假设您的给定数组在$array中,您可以使用它.但正如我告诉你的那样,你应该选择id来处理具有相同名称的类别,并将它们用作选择框中的选项值:

  $options = get_options($array);
  echo "

假设您现在将数组中的ID设置为“category_id”和“parent_category_id”,则可以使用此选项.在$return中键之前的“x”只是为了避免PHP更改你的键,因为它们是数字的.

  $options = get_options($array);
  echo "

猜你在找的MySQL相关文章