Edição de registro no banco de dados em PHP

Vamos agora implementar a edição do usuário. Para isso, vamos precisar de duas páginas: a página edit.php, onde ficará o formulário para edição do usuário, e a página save.php, para a qual o formulário será enviado para posterior salvamento.

Página de edição

Primeiro, na página edit.php, vamos fazer um formulário:

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

Neste formulário, vamos carregar os dados atuais do usuário do banco de dados. Deixe que o id do usuário para edição seja passado no parâmetro GET:

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

Vamos formar uma consulta para obter o usuário:

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

Vamos executar a consulta:

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

Vamos obter os dados do usuário em uma variável:

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

Vamos exibir esses dados em nosso formulário:

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>

Vamos mudar o action do formulário para que ele seja enviado para a página save.php:

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

Nesse caso, vamos passar o id do usuário para edição como parâmetro GET:

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

Página de salvamento

Na página save.php, vamos obter os dados enviados:

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

Vamos formar uma consulta de atualização:

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

Vamos executar a consulta:

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

Vamos exibir uma mensagem de sucesso da operação:

html<?php
  echo 'usuário alterado com sucesso!';
?>

Tarefas práticas

Задание 1

Implemente a página edit.php para edição do usuário.

Задание 2

Implemente a página save.php para salvar o resultado da edição.

Задание 3

Na página index.php, exiba na tela a lista de usuários de forma que para cada usuário haja um link para sua edição:

html<ul>
  <li>user1 <a href="?edit=1">editar</a></li>
  <li>user2 <a href="?edit=2">editar</a></li>
  <li>user3 <a href="?edit=3">editar</a></li>
</ul>
Задание 4

Implemente o processamento do formulário na página edit.php.