Tietueen muokkaaminen tietokannassa PHP:llä

Käytetään nyt käyttäjän muokkaamista. Tätä varten tarvitsemme kaksi sivua: sivu edit.php, jolla on lomake käyttäjän muokkaamiseen, ja sivu save.php, johon lomake lähetetään myöhempää tallennusta varten.

Muokkaussivu

Aluksi sivulla edit.php teemme lomakkeen:

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

Lataamme tähän lomakkeeseen nykyiset tiedot käyttäjästä tietokannasta. Olkoon id käyttäjän muokkaamista varten lähetetään GET parametrina:

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

Muodostetaan kysely käyttäjän hakemiseksi:

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

Suoritetaan kysely:

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

Saadaan käyttäjän tiedot muuttujaan:

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

Näytetään nämä tiedot lomakkeessamme:

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>

Muutetaan lomakkeen action niin, että se lähetetään sivulle save.php:

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

Samalla GET parametrina lähetetään id muokattavan käyttäjän:

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

Tallennussivu

Sivulla save.php saadaan lähetetyt tiedot:

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

Muodostetaan päivityskysely:

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

Suoritetaan kysely:

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

Näytetään viesti operaation onnistumisesta:

html<?php
  echo 'käyttäjä muutettu onnistuneesti!';
?>

Käytännön tehtävät

Задание 1

Toteuta sivu edit.php käyttäjän muokkaamiseen.

Задание 2

Toteuta sivu save.php muokkaustuloksen tallentamiseen.

Задание 3

Sivulla index.php näytä ruudulla lista käyttäjistä siten, että jokaiselle käyttäjälle on linkki hänen muokkaamiseensa:

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

Toteuta lomakkeen käsittely sivulla edit.php.