SQL запрос из двух таблиц - PullRequest
1 голос
/ 11 ноября 2010

У меня есть две таблицы (клиенты, администратор). Пользователь входит в систему по электронной почте и паролю, мне нужно проверить, есть ли адрес электронной почты и пароль в таблице клиентов или администратора. Электронные письма не соответствуют действительности, поэтому проблем не возникнет. Это для универа, очевидно, у меня был бы лучший дизайн базы данных, чем этот, но я должен использовать то, что дано. У меня есть это:

$email = $_POST['email']; 
$password = $_POST['password'];

$sql = "SELECT * FROM customer, admin WHERE cus_email = '$email'
 AND cus_password = '$password' OR admin_email = '$email' AND admin_password = '$password'";

Я не очень хорош с Джоинсом, поэтому я не пытался это сделать.

Спасибо за любую помощь:)

Ответы [ 2 ]

3 голосов
/ 11 ноября 2010

Вам действительно нужен СОЮЗ, а не СОЕДИНЕНИЕ здесь:

SELECT username
  FROM Customer
 WHERE cus_email = ? AND cus_password = ?
UNION
SELECT adminname AS username
  FROM admin
 WHERE admin_email = ? AND admin_password = ?

Вы должны либо использовать заполнители - знаки вопроса - либо защитить себя от SQL-инъекций атак. Есть функции, которые помогут вам сделать это в PHP.

2 голосов
/ 11 ноября 2010
SELECT cus_id as id, 'false' as IsAdmin 
FROM customer
WHERE cus_email = '$email' 
    AND cus_password = '$password' 
UNION ALL    
SELECT admin_id as id, 'true' as IsAdmin
FROM admin
WHERE admin_email = '$email' 
    AND admin_password = '$password'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...