Modifica dei record nel database con PHP
Ora implementiamo la modifica dell'utente.
Per questo avremo bisogno di due pagine: la pagina
edit.php, che conterrà
il modulo per modificare l'utente, e la pagina
save.php, a cui il modulo verrà inviato
per il successivo salvataggio.
Pagina di modifica
Per iniziare, creiamo un modulo nella pagina edit.php:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
In questo modulo caricheremo i dati correnti
dell'utente dal database. L'id dell'utente
da modificare viene passato nel parametro GET:
<?php
$id = $_GET['id'];
?>
Creiamo una query per ottenere l'utente:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Eseguiamo la query:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Otteniamo i dati dell'utente in una variabile:
<?php
$user = mysqli_fetch_assoc($result);
?>
Visualizziamo questi dati nel nostro modulo:
<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>
Cambiamo l'action del modulo in modo che
venga inviato alla pagina save.php:
<form action="save.php" method="POST">
In questo caso, passeremo l'id dell'utente
da modificare come parametro GET:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Pagina di salvataggio
Nella pagina save.php otteniamo i dati inviati:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Creiamo una query di aggiornamento:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Eseguiamo la query:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Visualizziamo un messaggio di operazione completata con successo:
<?php
echo 'utente modificato con successo!';
?>
Compiti pratici
Implementa la pagina edit.php per modificare
l'utente.
Implementa la pagina save.php per salvare
il risultato della modifica.
Nella pagina index.php visualizza
l'elenco degli utenti in modo che per ogni
utente ci sia un link per modificarlo:
<ul>
<li>user1 <a href="?edit=1">modifica</a></li>
<li>user2 <a href="?edit=2">modifica</a></li>
<li>user3 <a href="?edit=3">modifica</a></li>
</ul>
Implementa l'elaborazione del modulo nella pagina edit.php.