Не работает проверка сравнения введенных данных в форме и в БД MySQL PHP

Проблема следующего характера: при редактированни данных пользователя в форму автоматически добавляются его данные из БД. После нажатия подтверждения, необходимо, чтобы не изменные данные остались прежние. Проблема идет в редактировании пароля, он зашифрован через password_hash. Сделал следующую проверку, что если в форме отправляется такой же пароль, что уже имеется в БД - редактировать его не нужно, если пароль изменился, то необходимо его изменить перед этим зашифровав.

$db_userspass = mysqli_fetch_all(mysqli_query($connect, "SELECT * FROM users"));

      for ( $j = 0; $j < count($db_userspass); $j++ ) {
        $password = $_POST['password']; 
        $hash = $db_userspass[$j][4];
        if ( $password == $hash){
            $s_password  = $_POST['password'];
        }
        else { 
        $s_password = password_hash($password, PASSWORD_DEFAULT);;
        }
    }

    <form action="" class="form" method="POST" >
     <div class="form-group">
        <input class="form-control"  name="password" value="<?= isset($_GET['user_id']) ? $result['password'] : ''; ?>" >
      </div>

Следующий код состоит в том, что мы проходим по данным всех пользователей в БД и ищем пароль, который в форме, если его нет - записываем новый зашифрованный. Проблема состоит в том, что на одном сайте это работает, а на другом с такой-же логикой - нет.

Методом проб было выявлено, что если в строке $hash = $db_userspass[$j][4]; сранивать просто значение с БД в котором нужное число, например (код ниже), то все работает. То есть с условием вроде бы все хорошо, ему не нравится данные взятые данные из БД. Главное на аналогичном другом сайте с такой же структурой и переменными - все работает как часы...

$hash = 1; 
if ( $password == $hash){

Также еще заметил, что если убрать $s_password = password_hash($password, PASSWORD_DEFAULT); и написать $db_userspass[$j][4]; выведется последний зашифрованный пароль в БД.

Также прикладываю пример базы данных и ее структуру введите сюда описание изображениявведите сюда описание изображения


Ответы (0 шт):