我有一个角色表,其中包含各种用户角色。
数据透视表将其连接到我的用户表。
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/