ჩანაწერის რედაქტირება PHP-ში ბაზაში

ახლა მოდით, რომ განვახორციელოთ მომხმარებლის რედაქტირება. ამისათვის დაგვჭირდება ორი გვერდი: გვერდი edit.php, სადაც განთავსდება მომხმარებლის რედაქტირების ფორმა, და გვერდი save.php, სადაც ფორმა გაიგზავნება შემდგომი შენახვისთვის.

რედაქტირების გვერდი

პირველ რიგში, გვერდზე edit.php შევქმნათ ფორმა:

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

ამ ფორმაში ჩავტვირთავთ მიმდინარე მონაცემებს მომხმარებლის შესახებ მონაცემთა ბაზიდან. მოდით id მომხმარებლის რედაქტირებისთვის გადაეცეს GET პარამეტრში:

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

შევქმნათ მოთხოვნა მომხმარებლის მისაღებად:

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

შევასრულოთ მოთხოვნა:

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

მივიღოთ მომხმარებლის მონაცემები ცვლადში:

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

ეს მონაცემები გამოვსახოთ ჩვენს ფორმაში:

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>

შევცვალოთ ფორმის action ისე, რომ იგი გაიგზავნოს გვერდზე save.php:

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

ამ შემთხვევაში GET პარამეტრით გადავცემთ მომხმარებლის id რედაქტირებისთვის:

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

შენახვის გვერდი

გვერდზე save.php მივიღოთ გაგზავნილი მონაცემები:

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

შევქმნათ მოთხოვნა განახლებისთვის:

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

შევასრულოთ მოთხოვნა:

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

გამოვსახოთ შეტყობინება ოპერაციის წარმატების შესახებ:

html<?php
  echo 'მომხმარებელი წარმატებით შეიცვალა!';
?>

პრაქტიკული ამოცანები

Задание 1

განახორციელეთ გვერდი edit.php მომხმარებლის რედაქტირებისთვის.

Задание 2

განახორციელეთ გვერდი save.php რედაქტირების შედეგის შესანახად.

Задание 3

გვერდზე index.php გამოიტანეთ ეკრანზე მომხმარებელთა სია ისე, რომ თითოეული მომხმარებლისთვის იყოს მისი რედაქტირების ბმული:

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.