Mysql
 sql >> база данни >  >> RDS >> Mysql

Обединяване на таблици в MySql с едно общо поле, но различни стойности за общото поле

Трябва да имате една таблица, която съдържа следните колони:

идентификатор (уникален, основен), потребителско име, парола, роля (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. Тогава можете пренасочва потребителя, който се опитва да влезе със съобщение за грешка „Неуспешно влизане“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Подреждане по номер, нула последни

  2. MySQL дава на редовете цял живот

  3. при условие за актуализиране на дублиран ключ

  4. Изпълнение на .sql скрипт с помощта на MySQL с JDBC

  5. Как да сравним нулеви стойности в MySQL