Editarea înregistrării în baza de date pe PHP

Să implementăm acum editarea utilizatorului. Pentru aceasta vom avea nevoie de două pagini: pagina edit.php, unde va fi plasat formularul pentru editarea utilizatorului, și pagina save.php, unde formularul va fi trimis pentru salvare ulterioară.

Pagina de editare

Pentru început, pe pagina edit.php să facem un formular:

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

În acest formular vom încărca datele curente ale utilizatorului din baza de date. Fie că id utilizatorului pentru editare este transmis în parametrul GET:

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

Să formulăm o interogare pentru obținerea utilizatorului:

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

Să executăm interogarea:

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

Să obținem datele utilizatorului într-o variabilă:

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

Să afișăm aceste date în formularul nostru:

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>

Să schimbăm action formularului astfel încât să se trimită către pagina save.php:

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

În același timp, ca parametru GET vom transmite id utilizatorului pentru editare:

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

Pagina de salvare

Pe pagina save.php vom obține datele trimise:

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

Să formulăm o interogare de actualizare:

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

Să executăm interogarea:

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

Să afișăm un mesaj despre succesul operației:

html<?php
  echo 'utilizatorul a fost modificat cu succes!';
?>

Sarcini practice

Задание 1

Implementați pagina edit.php pentru editarea utilizatorului.

Задание 2

Implementați pagina save.php pentru salvarea rezultatului editării.

Задание 3

Pe pagina index.php afișați pe ecran lista utilizatorilor astfel încât pentru fiecare utilizator să existe un link pentru editarea acestuia:

html<ul>
  <li>user1 <a href="?edit=1">edit</a></li>
  <li>user2 <a href="?edit=2">edit</a></li>
  <li>user3 <a href="?edit=3">edit</a></li>
</ul>
Задание 4

Implementați procesarea formularului pe pagina edit.php.