Редактиране на запис в база данни с 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.