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 барагында иштеткиле.