Dovresti avere una tabella che contenga le seguenti colonne:
id (univoco, primario), nome utente, password, ruolo (INT, verrebbe assegnato 1-3 per principale, staff o corre a seconda dell'utente)
Inoltre
Potresti avere un'altra tabella chiamata ruoli se vuoi configurarla in questo modo:
id (univoco, primario), titolo (le opzioni per il titolo sarebbero principal, staff o corres)
Quando l'utente effettua l'accesso, fai qualcosa come
if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}
Non ne sono sicuro, ma credo che funzionerebbe anche questo. Prova questa query.
(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)
Supponendo che l'utente si trovi solo in UNA di queste tre tabelle, dovrebbe corrispondere al nome utente e alla password e scoprire da quale tabella proviene l'utente. Quindi puoi estrarre il ruolo utilizzando
$role = $row['role'];
Se la combinazione nome utente/password non è corretta, $role sarebbe vuoto oppure potresti recuperare il numero di righe [usando $iscorrectuser =mysql_num_rows($query)] dove c'è una corrispondenza e il numero di righe sarebbe 0. Potresti quindi reindirizza l'utente che tenta di accedere con un messaggio di errore "Accesso non riuscito".