我遇到了一些与我正在开发的简单ACL模块存在多对多关系的问题。加入MySQL和PHP的别名
我有三个表:
组
- * id_group
- 名
权限
- * id_permission
- 名
RelPermissionsGroup
- * id_relation
- 组
- 许可
所以我有这个查询
SELECT * FROM acl_groups
LEFT OUTER JOIN acl_RelPermissionsGroup
ON acl_groups.id_group = acl_RelPermissionsGroup.group
LEFT OUTER JOIN acl_permissions
ON acl_permissions.id_permission = acl_RelPermissionsGroup.permission
WHERE id_group > 0
如果我在phpmyadmin中查询它显示罚款。因此,它显示了所有组是否拥有权限,如果他们拥有权限,也会显示它们。
我在这里看到一个问题,它是名称属性重复。我怎样才能混淆每一个领域? 但这不是问题。
问题是,除了没有任何权限的组以外,执行mysqli_fetch_assoc会执行正常。这是什么输出:
Array (
[id_group] => 2
[name] =>
[id_relation] =>
[group] =>
[permission] =>
[id_permission] =>
)
组ID是好的,但考虑到字段重复它覆盖它们的事实。此外,id_group和id_permission似乎分别与组和权限重复。
我该怎么办?
它的工作原理!我可以选择显示多少个字段。感谢:D –