Трябва да имате една таблица, която съдържа следните колони:
идентификатор (уникален, основен), потребителско име, парола, роля (INT, ще бъдат присвоени 1-3 за директор, персонал или кореспондент в зависимост от потребителя)
Допълнително
Бихте могли да имате друга таблица, наречена роли, ако искате да настроите така:
идентификатор (уникален, основен), заглавие (опциите за заглавие биха били директор, персонал или коррес)
Когато потребителят влезе, просто направете нещо като
if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}
Не съм сигурен, но вярвам, че и това ще работи. Опитайте тази заявка.
(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)
Ако приемем, че потребителят се намира само в ЕДНА от тези три таблици, тогава той трябва да съответства на потребителското име и паролата и да разбере от коя таблица идва потребителят. След това можете да изтеглите ролята, като използвате
$role = $row['role'];
Ако комбинацията потребителско име/парола е неправилна, тогава $role ще бъде празна или можете да извлечете броя на редовете [използвайки $iscorrectuser =mysql_num_rows($query)], където има съвпадение и броят на редовете ще бъде 0. Тогава можете пренасочва потребителя, който се опитва да влезе със съобщение за грешка „Неуспешно влизане“.