@lil_koi
лучший из худших

Как изменить изменения в бд для всех значений?

у меня есть код, который меняет одно значение из формы, где есть: name, email,phone. Мой код для смены имени выглядит так
<?php 
$data = $_POST; 
if (isset($data['do_changes'])){ 
session_start(); 
$user = R::findOne('users', 'name = ?', array($_SESSION['logged_user']['name'])); 
$usr = R::load('users', $user->id); 
$usr->name = $data['new_name']; 
R::store($usr); 
} 
?>

тут ред бин, если что. Мне надо, что если заполнены ещё значения, то их тоже заменять. Если нет, то оставлять без изменения.
В БД и название инпута подписаны одинакого, но в инпуте приставка new_
следовательно, в бд старое имя в name, а новое в вели в new_name
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
qpPeW
@qpPeW
Не люблю рутинную работу...
$data = $_POST; 
if (isset($data['do_changes'])){ 
session_start(); 
$user = R::findOne('users', 'name = ?', array($_SESSION['logged_user']['name'])); 
$usr = R::load('users', $user->id);
if (!empty($data['new_name']) && $data['new_name'] != $usr->name) {
$usr->name = $data['new_name'];
}
R::store($usr); 
}

Если Вы правильно описали и я правильно понял, то должно быть именно так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
Если особо ничего не менять, то так:
<?php 
if (isset($_POST['do_changes'])){ 
    session_start(); 
    $user = R::findOne('users', 'id = ?', [ $_SESSION['logged_user']['id'] ] ); 
    $user->name = $_POST['new_name']; 
    $user->email = $_POST['new_email']; 
    $user->phone = $_POST['new_phone']; 
    R::store($user); 
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы