sql >> Database >  >> RDS >> Mysql

Tabellen samenvoegen in MySql met één gemeenschappelijk veld maar verschillende waarden voor het gemeenschappelijke veld

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".



  1. Is er een verschil tussen DATE_SUB() en het gebruik van rekenkundige operatoren voor datetime-berekening?

  2. MariaDB Samengestelde datum- en tijdseenheden uitgelegd

  3. MySQL PDO sneller voorbereid dan query? Dat is wat deze eenvoudige test laat zien

  4. Er kon geen verbinding worden gemaakt omdat de doelmachine dit actief weigerde (PHP / WAMP)