U zou één tabel moeten hebben die de volgende kolommen bevat:
id (uniek, primair), gebruikersnaam, wachtwoord, rol (INT, zou 1-3 worden toegewezen voor opdrachtgever, personeel of corre, afhankelijk van de gebruiker)
Aanvullend
Je zou een andere tabel kunnen hebben met de naam rollen als je dit als volgt wilt instellen:
id (uniek, primair), titel (opties voor titel zijn hoofdsom, personeel of corres)
Als de gebruiker inlogt, doe dan iets als
if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}
Ik weet het niet zeker, maar ik denk dat dit ook zou werken. Probeer deze zoekopdracht.
(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)
Ervan uitgaande dat de gebruiker zich slechts in EEN van die drie tabellen bevindt, moet deze overeenkomen met de gebruikersnaam en het wachtwoord en uitzoeken uit welke tabel de gebruiker komt. Dan kun je de rol eruit halen met
$role = $row['role'];
Als de gebruikersnaam/wachtwoord-combinatie onjuist is, dan zou $role leeg zijn of zou u het aantal rijen kunnen ophalen [met $iscorrectuser =mysql_num_rows($query)] waar er een overeenkomst is en het aantal rijen zou 0 zijn. U zou dan de gebruiker die probeert in te loggen omleiden met de foutmelding "Inloggen mislukt".