PHP / SQL动态菜单(取决于不同的表)

用户名

我正在尝试根据数据库中表的结果来管理动态菜单。

到目前为止,下面的代码已经来了。。但是我无法按照我的意愿显示它。

我的数据库中有3个表,看起来像这样。

ws_categories

  • ID
  • maincat(主要类别的名称)

ws_subcategories

  • ID
  • subcat(子类别的名称)
  • parentcat(主要类别的ID)

ws_subsubs

  • ID
  • subsub(第二个子类别的名称)
  • parentsub(子类别的ID)

我想实现什么?具有一个简单的垂直菜单,可以输出主要类别,并在onclick上显示与该主要类别相关的子菜单替代项,如果子类别具有第3个子菜单/子菜单,则将显示在下面。

到目前为止,下面的代码已经来了。但是我似乎不明白为什么它多次输出主类别,而不仅仅是一次。

需要明确的是,我不明白我应该如何使用join来实现这一目标。我希望能够一次回显所有主要类别,一次回显子类别,并且如果有一个或多个第二子类别,我也希望它们也回响。如何通过join实现此目的?甚至有可能还是我找错了方向?

提前致谢。

的PHP

<?php


echo '<div class="dl_parent">';

$results = mysqli_query($link, "SELECT * FROM `ws_categories` INNER JOIN `ws_subcategories` ON `ws_categories`.`id` = `ws_subcategories`.`parentcat`;") or die (mysqli_error($link));
    while($row = mysqli_fetch_array($results)){
    echo '
<div class="dl_parent">
    <div class="dl_link">'.$row['maincat'].'</div>
    <div class="dl_sub_dd">
        <ul>
            <li>'.$row['subcat'].'</li>
        </ul>
    </div>
</div>
    ';
   }
?>

Java脚本

    $(window).on('load',function(){
//CLICK-HANDLERS=============================
    $('.dl_link').click(function(){
        var submenu = $(this).parent().children('.dl_sub_dd');
        if (submenu.css('display') == 'none') {
            $('.dl_sub_dd').hide(); //first hide any previously showing submenu's
            submenu.show(); //then show the current submenu
        } else {
            submenu.hide(); //hide the current submenu again
        }
    });
});

的CSS

/*LINK------------------------*/
.dl_link {
    cursor:pointer;
}

/*DROPMENU--------------------*/
.dl_sub_dd {
    display:none;
}
胡洛特

您的SQL请求将为您的每个主要类别提供与子类别一样多的行:

row 1: maincat1 | subcat1
row 2: maincat1 | subcat2
etc...

您可以请求选择所有主要猫,对于每个主要猫,都可以再次请求选择其所有子猫。像这样的东西:

的PHP

<?php


$results = mysqli_query($link, "SELECT * FROM `ws_categories`;") or die (mysqli_error($link));
    while($row = mysqli_fetch_array($results)){
    echo '
<div class="dl_parent">
    <div class="dl_link">'.$row['maincat'].'</div>
    <div class="dl_sub_dd">
        <ul>';
             $query = mysqli_query($link, "SELECT * FROM `ws_categories` INNER JOIN `ws_subcategories` ON `ws_categories`.`id` = `ws_subcategories`.`parentcat` WHERE `ws_categories`.`id` = " . $row['id'] . ";") or die (mysqli_error($link));
            while($row2 = mysqli_fetch_array($query)) {
                echo '<li>'.$row2['subcat'].'</li>';
            }
        echo '</ul>
    </div>
</div>
    ';
   }
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP / SQL动态菜单(取决于不同的表)

来自分类Dev

动态php标题取决于页面ID和“ if(isset)”的使用

来自分类Dev

(PHP)PDO使用取决于设置变量的不同查询

来自分类Dev

SQL Search嵌入在PHP中以$ var取决于搜索条件

来自分类Dev

链接菜单到登录页面,具体取决于访问级别PHP

来自分类Dev

动态多级下拉菜单php sql

来自分类Dev

求和与除法取决于输入php

来自分类Dev

将动态 PHP/SQL 动态子菜单与 CSS 集成

来自分类Dev

Eclipse Scout表菜单取决于表上下文

来自分类Dev

动态页面大小取决于内部菜单项的高度

来自分类Dev

PHP数组中的动态菜单

来自分类Dev

动态命名php表

来自分类Dev

用PHP动态表

来自分类Dev

动态表号php

来自分类Dev

填充文本框取决于php中的下拉选择

来自分类Dev

PHP条件取决于窗口宽度(媒体查询?)

来自分类Dev

mysql和php的colum值的总和,取决于日期

来自分类Dev

填充文本框取决于php中的下拉选择

来自分类Dev

间隔之间的PHP数字取决于输入字符串

来自分类Dev

PHP页面重定向取决于jQuery selectmenu选择

来自分类Dev

执行shell脚本代码取决于php返回值

来自分类Dev

PhpMyAdmin取决于php7.0而不是7.1

来自分类Dev

如何验证取决于 php laravel 中的其他值?

来自分类Dev

无法从表中选择所有结果,这取决于PHP和MySQL中的另一个表(关系数据库)

来自分类Dev

sql alchemy列值取决于其他表

来自分类Dev

是SQL插入的性能取决于表中的行数

来自分类Dev

SQL SELECT取决于多个变量和表

来自分类Dev

SQL加入不同的PHP

来自分类Dev

取决于时间的不同背景