Administruję systemem, w którym menu programu zostało skonstruowane tak:

Tabela (MySQL) z polami:
Lp
Opis
PoziomMenu
KategorieUprawnien

Domyślny poziom menu to 0. Po zalogowaniu skrypt zapytuję bazę:

  1. SELECT *
  2. FROM menu WHERE PoziomMenu = '$Poziom' AND KategorieUprawnien LIKE '%$KategoriaUzytkownika%' ORDER BY Lp


i wyświetla pozycje menu danego poziomu, do których juzer ma dostęp. Przejście do podmenu powoduje, że zmienna $Poziom jest ustawiana na inną wartość i zapytanie jest ponawiane. Analogicznie powrót "do góry".

Takie rozwiązanie działa fajnie, ale powoduje konieczność każdorazowego zapytania do bazy przed wyświetleniem menu. Nawet podczas powrotu do menu z innego ekranu.

Pomyślałem, że można by wczytywać to menu do pamięci jednorazowo, a potem tylko wyświetlać, ale nie wiem - czy to dobry pomysł?

W sesji trzymam już kilka zmiennych. Poza tym jak to zapisać do sesji - jako tablicę? A jak z niej później wybierać odpowiednie pozycje (w zależności od zmiennej $Poziom)?

Doradźcie czy w ogóle warto to robić.

Pozdrawiam,
K