Izmena zapisa u bazi podataka u PHP-u

Sada hajde da implementiramo izmenu korisnika. Za ovo će nam trebati dve stranice: stranica edit.php, na kojoj će biti forma za izmenu korisnika, i stranica save.php, na koju će forma biti poslata za naknadno čuvanje.

Stranica za izmenu

Za početak na stranici edit.php napravićemo formu:

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

U ovu formu ćemo učitati trenutne podatke korisnika iz baze podataka. Neka id korisnika za izmenu bude prosleđen u GET parametru:

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

Formiraćemo upit za dobijanje korisnika:

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

Izvršićemo upit:

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

Dobijamo podatke korisnika u promenljivu:

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

Prikažimo ove podatke u našoj formi:

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>

Promenićemo action forme tako da se šalje na stranicu save.php:

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

Pritom ćemo GET parametrom proslediti id korisnika za izmenu:

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

Stranica za čuvanje

Na stranici save.php dobijamo poslate podatke:

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

Formiraćemo upit za ažuriranje:

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

Izvršićemo upit:

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

Prikažimo poruku o uspešnoj operaciji:

html<?php
  echo 'Korisnik je uspešno izmenjen!';
?>

Praktični zadaci

Задание 1

Implementirajte stranicu edit.php za izmenu korisnika.

Задание 2

Implementirajte stranicu save.php za čuvanje rezultata izmene.

Задание 3

Na stranici index.php prikažite na ekranu spisak korisnika tako da za svakog korisnika postoji link za njegovu izmenu:

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

Implementirajte obradu forme na stranici edit.php.