Gdzie sesja 'login' ma swoj poczatek i co zawiera zmienna $rola.
Posprawdzaj sobie co zawieraja zmienne ktore wyciagasz z bazy.
Ten warunek jest troche bez sensu.
Najpierw sprawdzaj czy istnieje sesja i w tym warunku daj kolejny warunek ktory sprawdza role.
if(isset($_SESSION['login'])) {
if($rola=='admin')
{
}else{
}
}else{
Echo "nie masz uprawnien"; }
Zreszta nie wiem po co ci ta sesja wogole. Wyciagles ja z kapelusza. Nie wiem co ty z nia wczesniej robisz i gdzie inicjujesz. Jest rejestrowana podczas logowania czy jak bo jesli tak to wystarczy podczas logowania przypisac role do sesji np 1 to dla admina 2 dla usera i potem sprawdzic tylko sesje bez tego drugiego warunku z $rola bo sama rola bedzie zawarta w sesji.
Wtedy dajesz dwa odrebne ify co eliminuje koncowe else{} jesli bys chcial sprawdzac wszystko w jednym warunku