Andmebaasikirje redigeerimine PHP-s

Rakendame nüüd kasutaja redigeerimise. Selleks vajame kahte lehekülge: lehekülge edit.php, kus asub kasutaja redigeerimise vorm, ja lehekülge save.php, kuhu vorm saadetakse hilisemaks salvestamiseks.

Redigeerimisleht

Alustuseks loome lehel edit.php vormi:

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

Selle vormi laadime kasutaja praegused andmed andmebaasist. Olgu kasutaja id redigeerimiseks antud GET parameetris:

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

Koostame päringu kasutaja saamiseks:

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

Teostame päringu:

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

Saame kasutaja andmed muutujasse:

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

Kuvame need andmed meie vormis:

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>

Muudame vormi action nii, et see saadetaks lehele save.php:

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

Samal ajal edastame GET parameetrina redigeeritava kasutaja id:

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

Salvestamise leht

Lehel save.php saame saadetud andmed:

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

Koostame uuendamise päringu:

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

Teostame päringu:

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

Kuvame teate operatsiooni edust:

html<?php
  echo 'kasutaja on edukalt muudetud!';
?>

Praktilised ülesanded

Задание 1

Rakendage leht edit.php kasutaja redigeerimiseks.

Задание 2

Rakendage leht save.php redigeerimise tulemuse salvestamiseks.

Задание 3

Lehel index.php kuvage ekraanile kasutajate nimekiri nii, et iga kasutaja juures oleks link tema redigeerimiseks:

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

Rakendage vormi töötlemine lehel edit.php.