Edición de registros en la base de datos con PHP

Ahora implementemos la edición de usuarios. Para esto necesitaremos dos páginas: la página edit.php, donde se ubicará el formulario para editar el usuario, y la página save.php, a la que se enviará el formulario para su posterior guardado.

Página de edición

Primero, en la página edit.php creemos el formulario:

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

En este formulario cargaremos los datos actuales del usuario desde la base de datos. Dejemos que el id del usuario para editar se pase en el parámetro GET:

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

Formulemos la consulta para obtener el usuario:

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

Ejecutemos la consulta:

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

Obtenemos los datos del usuario en una variable:

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

Mostremos estos datos en nuestro formulario:

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>

Cambiemos el action del formulario para que se envíe a la página save.php:

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

Al mismo tiempo, pasemos el id del usuario para editar como parámetro GET:

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

Página de guardado

En la página save.php obtengamos los datos enviados:

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

Formulemos la consulta de actualización:

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

Ejecutemos la consulta:

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

Mostremos un mensaje de éxito de la operación:

html<?php
  echo '¡Usuario modificado con éxito!';
?>

Tareas prácticas

Задание 1

Implemente la página edit.php para editar usuarios.

Задание 2

Implemente la página save.php para guardar el resultado de la edición.

Задание 3

En la página index.php muestre en pantalla la lista de usuarios de tal manera que para cada usuario haya un enlace para editarlo:

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 el procesamiento del formulario en la página edit.php.