Įrašo redagavimas PHP duomenų bazėje

Dabar įgyvendinkime vartotojo redagavimą. Tam mums reikės dviejų puslapių: puslapio edit.php, kuriame bus talpinama redagavimo forma, ir puslapio save.php, į kurį forma bus siunčiama vėlesniam išsaugojimui.

Redagavimo puslapis

Pirmiausia puslapyje edit.php sukurkime formą:

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

Į šią formą įkelsime esamus vartotojo duomenis iš duomenų bazės. Tegul id vartotojo redagavimui perduodamas GET parametre:

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

Sukurkime užklausą vartotojo gavimui:

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

Vykdykime užklausą:

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

Gaukime vartotojo duomenis į kintamąjį:

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

Atvaizduokime šiuos duomenis mūsų formoje:

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>

Pakeiskime formos action, kad ji būtų siunčiama į puslapį save.php:

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

Kartu GET parametru perduosime id vartotojo redagavimui:

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

Išsaugojimo puslapis

Puslapyje save.php gausime išsiųstus duomenis:

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

Sukurkime atnaujinimo užklausą:

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

Vykdykime užklausą:

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

Atvaizduokime sėkmingos operacijos pranešimą:

html<?php
  echo 'vartotojas sėkmingai pakeistas!';
?>

Praktinės užduotys

Задание 1

Įgyvendinkite puslapį edit.php vartotojo redagavimui.

Задание 2

Įgyvendinkite puslapį save.php redagavimo rezultato išsaugojimui.

Задание 3

Puslapyje index.php atvaizduokite ekrane vartotojų sąrašą taip, kad kiekvienam vartotojui būtų nuoroda jo redagavimui:

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

Įgyvendinkite formos apdorojimą puslapyje edit.php.