PHP-da ma'lumotlar bazasidagi yozuvni tahrirlash

Keling, endi foydalanuvchini tahrirlashni amalga oshiramiz. Buning uchun bizga ikkita sahifa kerak bo'ladi: edit.php sahifasi, unda foydalanuvchini tahrirlash uchun forma joylashadi, va save.php sahifasi, unga forma keyinchalik saqlash uchun yuboriladi.

Tahrirlash sahifasi

Boshlanish uchun edit.php sahifasida formani yasaymiz:

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

Ushbu formaga biz ma'lumotlar bazasidan foydalanuvchining joriy ma'lumotlarini yuklaymiz. id foydalanuvchisi tahrirlash uchun GET parametrida uzatilsin:

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

Foydalanuvchini olish uchun so'rov tuzamiz:

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

So'rovni bajaramiz:

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

Foydalanuvchi ma'lumotlarini o'zgaruvchiga olamiz:

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

Ushbu ma'lumotlarni formada chiqaramiz:

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>

Formaning action ni o'zgartiramiz, shunda u save.php sahifasiga yuboriladi:

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

Bunda GET parametri sifatida tahrirlash uchun foydalanuvchi id si uzatilsin:

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

Saqlash sahifasi

save.php sahifasida yuborilgan ma'lumotlarni olamiz:

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

Yangilash uchun so'rov tuzamiz:

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

So'rovni bajaramiz:

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

Amalning muvaffaqiyatli bajarilganligi haqida xabar chiqaramiz:

html<?php
  echo 'foydalanuvchi muvaffaqiyatli o\'zgartirildi!';
?>

Amaliy vazifalar

Задание 1

Foydalanuvchini tahrirlash uchun edit.php sahifasini amalga oshiring.

Задание 2

Tahrirlash natijasini saqlash uchun save.php sahifasini amalga oshiring.

Задание 3

index.php sahifasida foydalanuvchilar ro'yxatini har bir foydalanuvchi uchun uning tahrirlash havolasi bo'lishi shaklida chiqaring:

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

edit.php sahifasidagi formani qayta ishlashni amalga oshiring.