У меня есть система паролей пользователей, в которой мне нужно 1) проверить пароль пользователя по двум потенциальным паролям, хранящимся в базе данных, и 2) если совпадение найдено, убедитесь, что электронная почта пользователя соответствует электронной почте пользователя, хранящейся в строке, в которой былосоответствующий пароль.
Это текущий mysql, который я должен вытащить уникальному пользователю при входе в систему:
$sql = "SELECT * FROM users WHERE email='$u' AND password='$p' OR password_two='$p'";
Это работает в подавляющем большинстве случаев, но не работает, когда несколько пользователей имеют одинаковые пароли - например, еслинесколько пользователей имеют пароль «123456».Я предполагаю, что это потому, что настройка AND ИЛИ, указанная выше, неверна.
Я обновил SQL-запрос, выполнив следующее утверждение:
$sql = "SELECT * FROM (SELECT * FROM users WHERE password='$p' OR password_two='$p') WHERE email = '$u' ";
Этот запрос не работает ни для каких пользователей. Может ли кто-нибудь помочь мне определить, где запрос идет неправильно?