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:
<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:
<?php
$id = $_GET['id'];
?>
Să formulăm o interogare pentru obținerea utilizatorului:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Să executăm interogarea:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Să obținem datele utilizatorului într-o variabilă:
<?php
$user = mysqli_fetch_assoc($result);
?>
Să afișăm aceste date în formularul nostru:
<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:
<form action="save.php" method="POST">
În același timp, ca parametru GET vom transmite
id utilizatorului pentru editare:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Pagina de salvare
Pe pagina save.php vom obține datele trimise:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Să formulăm o interogare de actualizare:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Să executăm interogarea:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Să afișăm un mesaj despre succesul operației:
<?php
echo 'utilizatorul a fost modificat cu succes!';
?>
Sarcini practice
Implementați pagina edit.php pentru editarea
utilizatorului.
Implementați pagina save.php pentru salvarea
rezultatului editării.
Pe pagina index.php afișați
pe ecran lista utilizatorilor astfel încât pentru fiecare
utilizator să existe un link pentru editarea acestuia:
<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>
Implementați procesarea formularului pe pagina edit.php.