PHP-də Verilənlər Bazasında Yazının Redaktə Edilməsi

Gəlin indi istifadəçinin redaktə edilməsini həyata keçirək. Bunun üçün bizə iki səhifə lazımdır: istifadəçinin redaktə edilməsi üçün formanın yerləşəcəyi edit.php səhifəsi və forma yığımından sonra saxlanılması üçün göndəriləcək save.php səhifəsi.

Redaktə Səhifəsi

Əvvəlcə edit.php səhifəsində forma hazırlayaq:

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

Bu forma bizə verilənlər bazasından istifadəçinin cari məlumatlarını yükləyəcək. Redaktə üçün istifadəçinin id-si GET parametrində ötürülsün:

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

İstifadəçinin alınması üçün sorğu quraq:

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

Sorğunu yerinə yetirək:

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

İstifadəçi məlumatlarını dəyişənə əldə edək:

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

Bu məlumatları formamızda çıxaraq:

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>

Formanın action-un dəyişirik ki, save.php səhifəsinə göndərilsin:

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

Bununla GET parametri ilə redaktə üçün istifadəçinin id-si ötürülür:

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

Saxlama Səhifəsi

save.php səhifəsində göndərilən məlumatları əldə edək:

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

Yeniləmə sorğusu quraq:

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

Sorğunu yerinə yetirək:

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

Əməliyyatın uğuru haqqında mesaj çıxadaq:

html<?php
  echo 'istifadəçi uğurla dəyişdirildi!';
?>

Praktiki Tapşırıqlar

Задание 1

İstifadəçinin redaktə edilməsi üçün edit.php səhifəsini həyata keçirin.

Задание 2

Redaktə nəticəsinin saxlanması üçün save.php səhifəsini həyata keçirin.

Задание 3

index.php səhifəsində hər bir istifadəçi üçün onun redaktə edilməsi linki olmaqla istifadəçilərin siyahısını ekranda çıxarın:

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

Formanın edit.php səhifəsində emalını həyata keçirin.