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:
<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:
<?php
$id = $_GET['id'];
?>
Formulemos la consulta para obtener el usuario:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Ejecutemos la consulta:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Obtenemos los datos del usuario en una variable:
<?php
$user = mysqli_fetch_assoc($result);
?>
Mostremos estos datos en nuestro formulario:
<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:
<form action="save.php" method="POST">
Al mismo tiempo, pasemos el id del usuario
para editar como parámetro GET:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Página de guardado
En la página save.php obtengamos los datos
enviados:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Formulemos la consulta de actualización:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Ejecutemos la consulta:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Mostremos un mensaje de éxito de la operación:
<?php
echo '¡Usuario modificado con éxito!';
?>
Tareas prácticas
Implemente la página edit.php para editar
usuarios.
Implemente la página save.php para guardar
el resultado de la edición.
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:
<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>
Implemente el procesamiento del formulario en la página edit.php.