我如何根据单独 table 中显示的值在 select 输入中显示结果?

How can I show results in a select input, based on values shown in a seperate table?

我有三个 table,我正在寻找一种方法来完成这项工作。

tbl_campaigns 有列 "id" 和 "campaign"。这个非常简单,它只是带有自动递增 ID 编号的活动名称,因此它们具有唯一 ID。

tbl_users 有一个 "id" 列,因此每个用户都有一个唯一的 ID 号,标准的东西。

tbl_permissions 每当创建新用户时都会创建一个新行。这意味着其 "id" 列具有与 'tbl_users' 中的用户 ID 匹配的唯一 ID 值。每次创建新的活动时,列的名称都与活动的 ID 值相匹配,例如,列 "campaign_1" 与 'tbl_campaigns' 中 ID 为 1 的活动相关。这个想法这个 table 数据是用 1 还是 0 填充的。

如果 ID 为 1 的行在列 "campaign_1" 中的编号为 1,则 ID 为 1 的用户被批准用于活动 [=40 中 ID 为 1 的活动=].如果它是 0,那么他们就不会被批准。同样的逻辑适用于 "campaign_2"、"campaign_3" 等列。

无论如何,我遇到的问题是在前端显示此信息,因为我只希望用户能够在下拉列表中看到他们被批准 运行 的活动列表。当用户登录时,它会将他们的用户 ID 存储在会话中,我不确定是否可以使用此方法解决它。

有什么办法可以解决这个问题吗?请注意,我已经在程序 PHP 中完成了这项工作,因为我还处于早期阶段,所以如果有人能按照这些思路提供解决方案,我们将不胜感激。对不起,如果它有点混乱。我知道它有点笨拙,但我只想让它先工作。

我认为这样做的最佳做法如下:
- 创建 HTML 以显示给用户(如果您没有,请告诉我,以便我可以处理您可以使用的)
- 创建负责调用 PHP 文件的 JS 存档,并在你的 HTML 中显示结果(如果你不知道如何制作它,请告诉我,这样我可以帮助你)
- 创建 PHP 文件,这将负责查询您的数据库并给出您的 select 不希望的结果(如果您不知道如何制作,请告诉我)

完成这项工作非常容易,如果您需要更多帮助,请告诉我。

我认为您的架构需要改进,因为 table 结构不应该在您每次添加新广告系列时都更改。

  1. 保持 tables tbl_campaigns 和 tbl_users 不变
  2. 创建 table tbl_permissions 具有 4 个字段(id、user_id、campaign_id 和权限)

要检查用户是否有权限,请使用如下查询:

SELECT permission FROM tbl_permissions WHERE user_id = ? AND campaign_id = ?

因此,每次创建活动时,都会向 tbl_permissions table 添加相应的记录。无需添加新列。