使用PHP从MySQL动态多下拉选择选项

使用PHP从MySQL动态多下拉选择选项,php,jquery,mysql,Php,Jquery,Mysql,我正试图找到某种解决方案来解决一个问题,我必须根据用户选择的选项为用户提供动态下拉列表 目前我有3个表是这样规范化的 目前,这在我的HTML选择元素中运行良好,如果我选择JohnDoe,我将获得Paul、Kevin和Dick作为第二个选项,如果我选择Kevin,我将获得Drake和Kanye作为第三个选项 我的问题是,我不想继续创建表,因为我想在我的应用程序中添加更多的staff_级别的层 我将如何使用PHP和MySQL实现这一点并拥有一个完全动态的表结构 感谢您花时间阅读此文章。您需要人员之

我正试图找到某种解决方案来解决一个问题,我必须根据用户选择的选项为用户提供动态下拉列表

目前我有3个表是这样规范化的

目前,这在我的HTML选择元素中运行良好,如果我选择JohnDoe,我将获得Paul、Kevin和Dick作为第二个选项,如果我选择Kevin,我将获得Drake和Kanye作为第三个选项

我的问题是,我不想继续创建表,因为我想在我的应用程序中添加更多的staff_级别的层

我将如何使用PHP和MySQL实现这一点并拥有一个完全动态的表结构


感谢您花时间阅读此文章。

您需要人员之间的关联表。将它们放在一个具有唯一ID的表中,如下所示:

Table Staff
id  | Name        | <Other fields>
----+-------------+----------
1   | John Doe    | 
2   | Sam Smith   | 
3   | John Johns  | 
4   | Paul Pete   | 
5   | Kevin Mayor | 
6   | Dick Ross   | 
      ...
这个表应该有一个用于唯一键的id字段,但您不必关心它是什么(它不像
Staff.id
字段那样用作外键),这就是为什么我把
*
放在那里的原因-实际上它是一些整数id


我还没有看到你的PHP从数据库中提取值,但基本上是一样的-查询关联表过滤你正在寻找的经理的id,你将获得下属的id(你可以在staff表上加入
以获得姓名).

在什么情况下使用这些多级表?约翰·约翰、保罗·皮特和凯文·马约尔之间的关系是什么?嗨@AaronD,我提供的表格突出了名字之间的关系?您还需要哪些其他关系数据?我将重新措辞-为什么要这样设计?这些名字之间的真实关系是什么?我认为一个不同的设计可能更合适,因为我很难想象这样一个场景,其中有一个关系树(可能不是一个家族树)。关系表可能更合适。例如,一个包含字段
id
name
的员工表,然后是一个包含字段
ManagerId
subfiliaid
StaffRelationships
表(例如,它可能是经理下属类型的关系)。这样每个人都有一个唯一的id,你可以在他们之间建立多对多的关系?如果我想找到谁是Kanye South的下属,在本例中是Dick Ross,如果我也想找到Dick Ross的下属,则是Sam Smith。我基本上是想找到一个更好的方法来建立这些关系。这是非常有意义的!非常感谢你。
Table StaffRelationships
id | ManagerId | SubordinateId
---+-----------+--------------
*  | Null      | 1                       # Has no manager
*  | 2         | 6                       # Dick Ross is subordinate to Sam Smith