Редактирование записи в БД на PHP

Давайте теперь реализуем редактирование юзера. Для этого нам понадобится две страницы: страница edit.php, на которой будет размещаться форма для редактирования юзера, и страница save.php, на которую форма будет отправляться для последующего сохранения.

Страница редактирования

Для начала на странице edit.php сделаем форму:

edit.php<form action="" method="POST">
  <input name="name">
  <input name="age">
  <input name="salary">
  <input type="submit">
</form>

В эту форму мы будем загружать текущее данные юзера из базы данных. Пусть id юзера для редактирования передается в GET параметре:

edit.php<?php
  $id = $_GET['id'];
?>

Сформируем запрос на получение юзера:

edit.php<?php
  $query = "SELECT * FROM users WHERE id=$id";
?>

Выполним запрос:

edit.php<?php
  $result = mysqli_query($link, $query) or die(mysqli_error($link));
?>

Получим данные юзера в переменную:

edit.php<?php
  $user = mysqli_fetch_assoc($result);
?>

Выведем эти данные в нашей форме:

edit.php<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:

html<form action="save.php" method="POST">

При этом GET параметром будем передавать id юзера для редактирования:

html<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">

Страница сохранения

На странице save.php получим отправленные данные:

html<?php
  $id = $_GET['id'];
  $name = $_POST['name'];
  $age = $_POST['age'];
  $salary = $_POST['salary'];
?>

Сформируем запрос на обновление:

html<?php
  $query = "UPDATE users SET
    name='$name', age='$age', salary='$salary'
  WHERE id=$id";
?>

Выполним запрос:

html<?php
  mysqli_query($link, $query) or die(mysqli_error($link));
?>

Вывыдем сообщение об успехе операции:

html<?php
  echo 'юзер успешно изменен!';
?>

Практические задачи

Задание 1

Реализуйте страницу edit.php для редактирования юзера.

Задание 2

Реализуйте страницу save.php для сохранения результата редактирования.

Задание 3

На странице index.php выведите на экран список юзеров так, чтобы для каждого юзера была ссылка для его редактирования:

html<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>
Задание 4

Реализуйте обработку формы на странице edit.php.