Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Łączenie tabel w MySql z jednym wspólnym polem, ale różnymi wartościami wspólnego pola

Powinieneś mieć jedną tabelę zawierającą następujące kolumny:

id (unikalny, podstawowy), nazwa użytkownika, hasło, rola (INT, zostanie przypisana 1-3 dla dyrektora, personelu lub corre w zależności od użytkownika)

Dodatkowo

Możesz mieć inną tabelę o nazwie role, jeśli chcesz skonfigurować w ten sposób:

id (unikalny, główny), tytuł (opcje dla tytułu to dyrektor, personel lub corres)

Gdy użytkownik się zaloguje, po prostu zrób coś takiego

if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}

Nie jestem pewien, ale wierzę, że to też by zadziałało. Wypróbuj to zapytanie.

(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)

Zakładając, że użytkownik znajduje się tylko w JEDNEJ z tych trzech tabel, powinien pasować do nazwy użytkownika i hasła i dowiedzieć się, z której tabeli pochodzi użytkownik. Następnie możesz wycofać rolę, używając

$role = $row['role'];

Jeśli kombinacja nazwa użytkownika/hasło jest niepoprawna, to $rola byłaby pusta lub możesz pobrać liczbę wierszy [za pomocą $iscorrectuser =mysql_num_rows($query)], gdzie jest dopasowanie i liczba wierszy będzie wynosić 0. Możesz wtedy przekieruj użytkownika próbującego się zalogować z komunikatem o błędzie „Nieudane logowanie”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ld:nie znaleziono biblioteki dla -lzstd podczas instalacji pakietu dla mysql2 gem Ruby na macOS Big Sur 11.4

  2. Utwórz tabelę, jeśli nie istnieje z mysqldump

  3. Codeigniter:kolumna „id” w klauzuli zamówienia jest niejednoznaczna

  4. Dlaczego wiersze miałyby się zgadzać, ale nie byłyby zmieniane za pomocą instrukcji aktualizacji mysql?

  5. Wyszukiwanie pełnotekstowe MySQL w>1 tabeli