MySQL Могу ли я выбрать данные из одной таблицы или другой таблицы? - PullRequest
0 голосов
/ 18 августа 2011

Я работаю над сценарием входа (в HTML, PHP и MYSQL) для веб-сайта, который имеет два типа учетных записей: учетная запись «A» и учетная запись «B».Прямо сейчас у меня есть выбор радио, который позволяет пользователю выбирать, какой тип учетной записи у него есть.Но я хочу немного очистить экран входа в систему, а также включить форму входа в заголовок, полностью удалив переключатели.

Как мне заставить скрипт проверить первую таблицу на предмет результатов (имя пользователяи пароль), и если не найдено никаких результатов, проверьте следующую таблицу (имя пользователя и пароль), а затем, как только найдет совпадение, отправит ее на страницу, относящуюся к конкретной учетной записи?переключатели.

Редактировать: я не получаю никаких ошибок, но проблема в том, что он выбирает только из первой таблицы: Вот мой код:

$q = "SELECT varone, vartwo 
    FROM tablea 
    WHERE (user_email='$e' AND pass=SHA1('$p'))
    UNION
    SELECT varthree, vartwo 
    FROM tableb
    WHERE (contact_email='$e' AND pass=SHA1('$p'))
    ";      
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

Ответы [ 2 ]

1 голос
/ 18 августа 2011
SELECT 'first' AS source, ...
FROM firstable
WHERE (username = $user) and (password = $password)

UNION

SELECT 'second' as source, ...
FROM secondtable
WHERE (....)

Затем просто проверьте, откуда пришли результаты в вашем коде.

if ($row['source'] == 'first') { ... came from first table ... }

Должно работать, при условии, что одна и та же пара имя пользователя / пароль не появится в обеих таблицах.

0 голосов
/ 18 августа 2011
select * from table_A where id = 6 union select * from table_b where other_id = 6;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...