Обновить данные в 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