Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyświetlenie listy uprawnień
Forum PHP.pl > Forum > PHP
insenic
Witam!

Mam trzy takie table:

Kod
Tabela 'grupa_rol'
[id]    [nazwa_grupy]    [opis_grupy]
1       strona           Przeglądanie stron
2       logowanie        Logowanie użytkowników

Tabela 'role'
[id]    [nazwa_grupy]    [nazwa_roli]       [opis_roli]
1       strona           strona_pokaz       Wyświetlanie zawartości strony
2       strona           strona_edytuj      Edycja zawartości strony
3       logowanie        logowanie_loguj    Możliwość logowania użytkownika
4       strona           strona_usun        Usuwanie strony
5       logowanie        logowanie_wyloguj  Wylogowanie użytkownika

Tabela 'grupa_rola'
[id]    [id_grupy]       [id_roli]
1       1                1
2       1                3
3       1                5

Chciałbym teraz za pomocą jednego zapytania osiągnąć efekt listy jak poniżej:

Przeglądanie stron
[*] Wyświetlanie zawartości strony
[ ] Edycja zawartości strony
[ ] Usuwanie strony

Logowanie użytkowników
[*] Możliwość logowania użytkownika
[*] Wylogowanie użytkownika

Kwestią wyświetlania to sam już się zajmę. Pytanie teraz jak to wczytać jednym zapytaniem i załadować do pętli tak bym miał dostęp do pól:
tabela['grupa_rol'] - opis grupy
tabela['role'] - nazwa roli
tabela['role'] - opis roli
oraz informację czy do grupy o id 1 taka rola jest przypisana czy nie ( [*] / [ ] )

Dziękuję i pozdrawiam
k1ller
Mam nadzieje, ze to Ci zalatwi sprawe:
  1. SELECT role.*,grupa_rol.opis_grupy,IF (grupa_rola.id>0,'true','false') AS przypisane
  2.  
  3. FROM grupa_rol , role LEFT JOIN grupa_rola ON (grupa_rola.id_roli=role.id AND grupa_rola.id_grupy=1)
  4.  
  5. WHERE grupa_rol.nazwa_grupy=role.nazwa_grupy
  6.  
  7. ORDER BY grupa_rol.nazwa_grupy;


Nr grupy ktora Cie interesuje jest tutaj grupa_rola.id_grupy=1

Jako wynik bedziesz mial ladna tablice z dodatkowa kolumna przypisane, ktora pokazuje Ci czy dana akcja jest przypisana do grupy czy nie.

Mam nadzieje ze zczytanie tego wyniku do tablicy asocjacyjnej nie bedzie juz dla Ciebie problemem, jak cos to pisz.

Pozdro i powodzenia
insenic
Przyznam, że nie widziałem jeszcze tak złożonego zapytania. Wszystko działa, dziękuję bardzo.

Pozdrawiam...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.