Dave Kreskowiak
Посмотрите на то, что делает ваш код:
public function updateUserDetails($userid,$email,$first_name,$last_name,$password,$orderseriesno,$role_id) {
$result = $this->db->query("SELECT username FROM tbluser WHERE user_id='".$userid."' ");
$is_user = $result->fetchAllArray();
$update_at=date("Y-m-d H:i:s");
if (count($is_user) != 0) {
$update_user = $this->db->query("UPDATE tbluser SET first_name ='".$first_name."', last_name ='".$last_name."' , email ='".$email."' , password ='".$password."' , role_id = ".$role_id." , updated_at ='".$update_at."' WHERE user_id='".$userid."'");
$username = $is_user[0]['username'];
if ($userUpdateData !== false) {
if ($orderseriesno != '') {
$add_orderseriesno = $this->db->query("UPDATE tbluserorderseries SET orderseriesno=$orderseriesno , updated_at ='".$update_at."' where username='$username'");
}
return true;
}
}
else {
return false;
}
}
Вы обновляете каждое поле в записи, даже если пользователь не поместил значение в текстовое поле для этого поля. Вы можете изменить это, извлекая существующую запись пользователя из базы данных, затем просматривая каждое поле, проверяя, было ли что-то введено в это поле или нет, обновляя данные, которые у вас есть локально, и когда вы закончите с этим, затем выполните инструкцию UPDATE обратно в базу данных.
inspp
@dave Да, я это знаю.. Я даже пытаюсь сохранить свой старый пароль в переменной, а затем сохранить запись пользователя в другой переменной и сравнить ее со старой,если изменение найдено, то обновить базу данных, но безуспешно. Я знаю, что не правильно спрашивать вас об этом, но не могли бы вы отредактировать мой ответ и предоставить мне правильное решение в этом коде. Спасибо.
Dave Kreskowiak
Нет, потому что я не занимаюсь PHP.
Код, который вы опубликовали, противоречит тому, что вы только что сказали.
Лучшее, что я могу сделать, это:
Execute query to load user record.
Put user record fields into appropriate variables.
If password has changed, replace password variable with new content.
If email has changed, replace email variable with new content.
.
.
.
Update user record in database with the data in the variables above.