计数PHP +1

时间:2016-06-02 10:18:53

标签: php html laravel count

我有这样的数据库:

id     menuname   parent_id
-----+----------+-----------
 1     a            0
 2     b            0
 10    a/xx         1
 11    a/xo         1
 20    b/xx         2
 21    b/xx         2

我只有父菜单ID的前两行。我得到数字1和2.如何从parent_id

创建子菜单ID

ID 10来自parent_id 1和0 ID 11来自parent_id 1和1 ID 20来自parent_id 2和0 ID 21来自parent_id 2和1

我想把它作为php中的一个表单

  • 首先是下拉式foreach,值为ID parent_id=0(1和2)
  • 其次是只包含子菜单ID的文本(自动变为10或11或12或13)

4 个答案:

答案 0 :(得分:0)

如果我理解得很好你就需要这个

SELECT t2.* FROM table_name t1
  JOIN table_name t2 ON t1.id = t2.parentId
  WHERE t1.id = (1 or 2 or whatever ID)

答案 1 :(得分:0)

您只需使用order by执行SQL语法。

SELECT * FROM table_name ORDER BY parent_id

答案 2 :(得分:0)

尝试在初始值上进行循环

foreach($parentValues as $eachValue){ // $parentValues will contain 1 and 2 loop first for 1
   // Fetch from database against column parent_id for $eachValue First value is 1 and against which user will get 10 and 11
}

答案 3 :(得分:0)

如果我正确理解您要执行的操作,则需要先从数据库中获取所有行。我会按menuname订购,以便稍后在选择菜单中按顺序排列。

SQL(基本概念)

SELECT id, menuname, parent_id
FROM table_name
ORDER BY menuname

<强> PHP

$result = //... Array of data from the SQL
$menu = [];

foreach ($result as $item) {
    $parentId = $item['parent_id'];
    if ($parentId > 0) {
        $menu[$parentId]['children'][] = $item;
    } else {
        $menu[$parentId] = $item;
    }
}

这应该为您提供了一系列精美的菜单项,您可以在HTML中循环输出菜单。如果您希望在选择父级以在下一个菜单中显示子选项时链接菜单,则需要使用JavaScript来执行此操作。