Du bør have én tabel, der indeholder følgende kolonner:
id (unik, primær), brugernavn, adgangskode, rolle (INT, vil blive tildelt 1-3 for rektor, personale eller tilsvarende afhængigt af brugeren)
Yderligere
Du kan have en anden tabel kaldet roller, hvis du vil opsætte sådan:
id (unik, primær), titel (muligheder for titel ville være rektor, personale eller korrespondance)
Når brugeren logger på, skal du bare gøre noget lignende
if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}
Jeg er ikke sikker, men jeg tror, at dette også ville fungere. Prøv denne forespørgsel.
(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)
Hvis vi antager, at brugeren kun er placeret i EN af disse tre tabeller, så burde den matche brugernavnet og adgangskoden og finde ud af, hvilken tabel brugeren kommer fra. Så kan du trække rollen ud ved at bruge
$role = $row['role'];
Hvis kombinationen af brugernavn/adgangskode er forkert, vil $role være tom, eller du kan hente antallet af rækker [ved hjælp af $iscorrectuser =mysql_num_rows($query)], hvor der er et match, og antallet af rækker ville være 0. Du kan derefter omdiriger brugeren, der forsøger at logge på, med fejlmeddelelsen "Mislykket login".