Редактирование записи в БД на PHP
Давайте теперь реализуем редактирование юзера.
Для этого нам понадобится две страницы: страница
edit.php, на которой будет размещаться
форма для редактирования юзера, и страница
save.php, на которую форма будет отправляться
для последующего сохранения.
Страница редактирования
Для начала на странице edit.php сделаем
форму:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
В эту форму мы будем загружать текущее данные
юзера из базы данных. Пусть id юзера
для редактирования передается в GET
параметре:
<?php
$id = $_GET['id'];
?>
Сформируем запрос на получение юзера:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Выполним запрос:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Получим данные юзера в переменную:
<?php
$user = mysqli_fetch_assoc($result);
?>
Выведем эти данные в нашей форме:
<form method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="age" value="<?= $user['age'] ?>">
<input name="salary" value="<?= $user['salary'] ?>">
<input type="submit">
</form>
Поменяем action формы так, чтобы она
отправлялась на страницу save.php:
<form action="save.php" method="POST">
При этом GET параметром будем передавать
id юзера для редактирования:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Страница сохранения
На странице save.php получим отправленные
данные:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Сформируем запрос на обновление:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Выполним запрос:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Вывыдем сообщение об успехе операции:
<?php
echo 'юзер успешно изменен!';
?>
Практические задачи
Реализуйте страницу edit.php для редактирования
юзера.
Реализуйте страницу save.php для сохранения
результата редактирования.
На странице index.php выведите на
экран список юзеров так, чтобы для каждого
юзера была ссылка для его редактирования:
<ul>
<li>user1 <a href="?edit=1">edit</a></li>
<li>user2 <a href="?edit=2">edit</a></li>
<li>user3 <a href="?edit=3">edit</a></li>
</ul>
Реализуйте обработку формы на странице edit.php.