padonnak
@padonnak

Умный способ восстановления пароля?

Всем привет,
Имеется бд mysql с ячейками в таблице account : login,password,mail
и есть еще таблица char: name,login - где имя привязано к логину из первой таблички
Как сделать проверку на вводимые поля при восстановлении пароля
Логин:Имя:Почта
когда логин и имя в разных таблицах?
не нашел документации о работе в 1 запросе в разные таблички
Пример:
$result = mysql_query("SELECT id FROM account WHERE login='$login' AND mail='$email' AND activation='1'",$db);
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
Если правильно понял задачу
$result = mysql_query("SELECT id FROM account WHERE login='$login' AND mail='$email' AND activation='1' AND login IN (SELECT login FROM char WHERE name='$name')",$db);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@devian3000
Эм, а в каком месте вы собираетесь проверять вводимые данные?
Ajax с фронтенда или на стороне сервера?

Если на стороне сервера, то проще сделать JOIN.
SELECT l.login,l.password,l.mail,c.name FROM login as l JOIN char as c ON (l.login = c.login) WHERE l.login = 'SomeLogin'
--- тут условие, предположим login.


И лучше использовать mysqli или PDO, в новой версии PHP mysql функций уже нет.

т.е. на pdo это будет так

$pdo = new \PDO('mysql:host=localhost;dbname=db','user','password');
$request = $pdo->prepare('SELECT l.login,l.password,l.mail,c.name FROM login as l JOIN char as c ON (l.login = c.login) WHERE l.login = :login');
$request->execute([':login' => $_POST['login']);
$result = $request->fetch(\PDO::FETCH_ASSOC);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы