Обновить данные в php, если вход заполнен

Я хочу создать форму для редактирования данных пользователя и отправить данные, которые пользователь хочет изменить, в БД с помощью запроса UPDATE, и нужно отправить только те данные, которые пользователь заполнил, например, если пользователь не хочет отредактировать адрес, чтобы он не отправлялся в MySQL.

Как я могу написать код для них? Может ли кто-нибудь объяснить алгоритм для меня:)

Искренне

Примечание. Вот форма, которую пользователь будет использовать для обновления информации.

<form method="post" class="form-group" action="edit-users.php">
    <label for="name">Name</label>
    <input type="text" class="form-control" name="name">
    <label for="email">E-mail Address</label>
    <input type="email" class="form-control" name="email">
    <label for="telnr">Telephone Number</label>
    <input type="tel" name="telnr" class="form-control">
    <label for="address">Address</label>
    <input type="text" class="form-control" name="address">
    <br>
    <input type="submit" class="btn btn-primary" name="submit" value="Save Changes">
</form>

2 ответа

<?php
if(isset($_POST['name']) AND !empty($_POST['name'])) {
      $name = $_POST['name'];
      $insertbd = $bdd->prepare("UPDATE membres SET name = ? WHERE id = ?");
      $insertbd->execute(array($name, $_SESSION['id']));      
}
?>

например, с вводом имени вы можете сделать это, "!empty" или isset если область остается пустой, в вашей БД ничего не изменится, когда пользователь что-то изменит и заполнит форму

ура

Постройте ваш запрос согласно имеющимся у вас данным. данные, которых у вас нет, пустые, поэтому они будут такими:

<?
$q="UPDATE $table_name SET "
$vals=array();
if(isset($_POST['address']) && !empty($_POST['address'])) {
    $vals[]='address= $_POST['address']';
}

... то же самое для всех других полей...

$q .= implode(',',$vals);
$q .= "WHERE $condition";

а затем просто запустите команду sql

Другие вопросы по тегам