Het gaat om de tabellen: modules, blocks, active_modules, active_blocks, rights, user_rights
Ik heb nu deze Query:
SELECT
b.module_id,
r.description,
COUNT(u.right_id)
FROM
active_blocks AS a
LEFT JOIN
blocks AS b
ON
b.id=a.block_id
LEFT JOIN
modules AS m
ON
m.id=b.module_id
LEFT JOIN
user_rights AS u
ON
u.user_id=?
LEFT JOIN
rights AS r
ON
r.id=u.right_id
WHERE
a.company_id=?
Wat ik nu wil is:
Alle rechten per module en block te weergeven, en waarvan die gebruiker al rechten heeft, dat het vinkje aangevinkt moet zijn.
Ik wil nu alle rechten in een array zetten, deze haal ik dan op in een andere while-loop die de actieve modules weergeeft (die werkt).
Nu moet het er zo uit komen te zien:
ADMIN (module)
-----------------------
- BEDRIJVEN - (block)
Bedrijven bekijken
Bedrijven bewerken
bedrijven verwijderen
etc.....
De indeling van mijn tabellen zien er zo uit:
modules:
id | name | description | sort
active_modules:
id | company_id | module_id
blocks:
id | module_id | name | title | description
active_blocks:
id | company_id | block_id
rights:
id | right | description
user_rights:
id | user_id | right_id
Ik hoop dat het zo duidelijk is en dat jullie mij hiermee kunnen helpen.
[edit]
Ik heb hem:
SELECT
m.id,
r.description,
(SELECT
COUNT(*)
FROM
user_rights AS u
WHERE
u.right_id=r.id
AND
u.user_id=?)
FROM
modules AS m
LEFT JOIN
blocks AS b
ON
b.module_id=m.id
LEFT JOIN
active_blocks AS a
ON
a.block_id=b.id
AND
a.company_id=?
LEFT JOIN
rights AS r
ON
r.module_id=m.id
AND
r.block_id=b.id
WHERE
r.block_id!=''
[/edit]