Powinieneś mieć jedną tabelę zawierającą następujące kolumny:
id (unikalny, podstawowy), nazwa użytkownika, hasło, rola (INT, zostanie przypisana 1-3 dla dyrektora, personelu lub corre w zależności od użytkownika)
Dodatkowo
Możesz mieć inną tabelę o nazwie role, jeśli chcesz skonfigurować w ten sposób:
id (unikalny, główny), tytuł (opcje dla tytułu to dyrektor, personel lub corres)
Gdy użytkownik się zaloguje, po prostu zrób coś takiego
if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}
Nie jestem pewien, ale wierzę, że to też by zadziałało. Wypróbuj to zapytanie.
(SELECT '1' AS role FROM table1 WHERE username = $username AND password = $password)
UNION ALL
(SELECT '2' AS role FROM table2 WHERE username = $username AND password = $password)
UNION ALL
(SELECT '3' AS role FROM table3 WHERE username = $username AND password = $password)
Zakładając, że użytkownik znajduje się tylko w JEDNEJ z tych trzech tabel, powinien pasować do nazwy użytkownika i hasła i dowiedzieć się, z której tabeli pochodzi użytkownik. Następnie możesz wycofać rolę, używając
$role = $row['role'];
Jeśli kombinacja nazwa użytkownika/hasło jest niepoprawna, to $rola byłaby pusta lub możesz pobrać liczbę wierszy [za pomocą $iscorrectuser =mysql_num_rows($query)], gdzie jest dopasowanie i liczba wierszy będzie wynosić 0. Możesz wtedy przekieruj użytkownika próbującego się zalogować z komunikatem o błędzie „Nieudane logowanie”.