PHPда БДда ёзувни таҳрирлаш

Келинг, энди фойдаланувчини таҳрирлашни амалга оширамиз. Бунинг учун бизга иккита саҳифа керак бўлади: саҳифа edit.php, у ерда фойдаланувчини таҳрирлаш учун шакл жойлашади, ва саҳифа save.php, унга шакл keyin сақлаш учун юборилади.

Таҳрирлаш саҳифаси

Бошлаш учун 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 саҳифасида шаклни қайта ишлашни амалга оширинг.