Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wyświetlenie listy uprawnień, Złożone zapytanie mySQL
insenic
post 19.02.2007, 16:37:46
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.02.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
k1ller
post 20.02.2007, 15:29:42
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.02.2007
Skąd: Wroclaw

Ostrzeżenie: (0%)
-----


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


--------------------
-------------------------------------------
Racja jest jak dupa, kazdy ma swoja
Go to the top of the page
+Quote Post
insenic
post 20.02.2007, 19:06:02
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.02.2007

Ostrzeżenie: (0%)
-----


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

Pozdrawiam...

Ten post edytował insenic 20.02.2007, 21:32:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 17:27