Editácia záznamu v databáze na PHP

Poďme teraz implementovať editáciu používateľa. Na to budeme potrebovať dve stránky: stránku edit.php, na ktorej bude umiestnený formulár na editáciu používateľa, a stránku save.php, na ktorú bude formulár odoslaný na následné uloženie.

Stránka editácie

Na začiatok na stránke edit.php vytvorme formulár:

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

Do tohto formulára načítame aktuálne údaje používateľa z databázy. Nech id používateľa pre editáciu je prenášané v GET parametri:

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

Vytvorme dopyt na získanie používateľa:

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

Vykonajme dopyt:

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

Získame údaje používateľa do premennej:

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

Vypíšme tieto údaje v našom formulári:

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>

Zmeňme action formulára tak, aby sa odosielala na stránku save.php:

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

Pričom GET parametrom budeme prenášať id používateľa pre editáciu:

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

Stránka uloženia

Na stránke save.php získame odoslané údaje:

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

Vytvorme dopyt na aktualizáciu:

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

Vykonajme dopyt:

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

Vypíšme správu o úspechu operácie:

html<?php
  echo 'používateľ úspešne zmenený!';
?>

Praktické úlohy

Задание 1

Implementujte stránku edit.php pre editáciu používateľa.

Задание 2

Implementujte stránku save.php pre uloženie výsledku editácie.

Задание 3

Na stránke index.php vypíšte na obrazovku zoznam používateľov tak, aby pre každého používateľa bol odkaz na jeho editáciu:

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

Implementujte spracovanie formulára na stránke edit.php.