php - 输出表中的所有数据并显示哪些行属于用户

标签 php mysql

我有一个角色表,其中包含各种用户角色。

数据透视表将其连接到我的用户表。

users
id | name

roles
id | title

user_role
user_id | role_id

我想显示所有存在的角色并预先勾选属于特定用户的角色。

我该如何解决这个问题,我认为我不能在 mySQL 中执行此操作?

我正在考虑使用一个查询获取所有角色,然后使用另一个查询获取属于特定用户的所有角色。

然后循环遍历所有角色,如果与特定用户角色匹配,则输出选中框而不是未选中框。

有更好的方法吗?

最佳答案

类似的东西

SELECT R.id as role_id,
       R.title as role_title,
       UR.user_id as user_id,
       U.name as user_name
  FROM Roles R
  LEFT JOIN user_role UR
         ON UR.role_id = R.id
        AND UR.user_id = :myuserid
  LEFT JOIN users U
         ON U.id = UR.user_id

应返回完整的角色列表,在 user 列中使用 NULL 或用户 ID 来指示用户已被授予的任何角色(用户通过 id 标识为 :myuserid)

关于php - 输出表中的所有数据并显示哪些行属于用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25401336/

相关文章:

php - 散点图在 x 轴上重复相同的值

php - AJAX/PHP 为什么 HTTP 轮询如此缓慢?

php - Magento + modman = 503 结帐页面中的网络错误

php - 将 YouTube URL 替换为 MySQL PHPMyAdmin 中的嵌入代码

php - 将大数据从txt插入到mysql

php - JOIN 只返回一个结果

PHP 干预图像调整图像大小以适应最短边长宽比

mysql - 我们可以通过对表进行排序来使用左连接而不是右连接吗?

java - 在swing界面中显示BLOB文件

python - 从 .txt 文件中排序数据