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:

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:

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

Creiamo una query per ottenere l'utente:

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

Eseguiamo la query:

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

Otteniamo i dati dell'utente in una variabile:

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

Visualizziamo questi dati nel nostro modulo:

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>

Cambiamo l'action del modulo in modo che venga inviato alla pagina save.php:

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

In questo caso, passeremo l'id dell'utente da modificare come parametro GET:

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

Pagina di salvataggio

Nella pagina save.php otteniamo i dati inviati:

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

Creiamo una query di aggiornamento:

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

Eseguiamo la query:

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

Visualizziamo un messaggio di operazione completata con successo:

html<?php
  echo 'utente modificato con successo!';
?>

Compiti pratici

Задание 1

Implementa la pagina edit.php per modificare l'utente.

Задание 2

Implementa la pagina save.php per salvare il risultato della modifica.

Задание 3

Nella pagina index.php visualizza l'elenco degli utenti in modo che per ogni utente ci sia un link per modificarlo:

html<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>
Задание 4

Implementa l'elaborazione del modulo nella pagina edit.php.