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:
<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:
<?php
$id = $_GET['id'];
?>
Vamos formar uma consulta para obter o usuário:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Vamos executar a consulta:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Vamos obter os dados do usuário em uma variável:
<?php
$user = mysqli_fetch_assoc($result);
?>
Vamos exibir esses dados em nosso formulário:
<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:
<form action="save.php" method="POST">
Nesse caso, vamos passar o id do usuário para edição
como parâmetro GET:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Página de salvamento
Na página save.php, vamos obter os dados
enviados:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Vamos formar uma consulta de atualização:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Vamos executar a consulta:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Vamos exibir uma mensagem de sucesso da operação:
<?php
echo 'usuário alterado com sucesso!';
?>
Tarefas práticas
Implemente a página edit.php para edição
do usuário.
Implemente a página save.php para salvar
o resultado da edição.
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:
<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 o processamento do formulário na página edit.php.