Редактиране на запис в база данни с PHP
Нека сега реализираме редактирането на потребител.
За целта ще ни трябват две страници: страницата
edit.php, на която ще се намира
формата за редактиране на потребителя, и страницата
save.php, на която формата ще бъде изпращана
за последващо запазване.
Страница за редактиране
Първо, на страницата edit.php ще направим
форма:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
В тази форма ще зареждаме текущите данни
на потребителя от базата данни. Нека id на потребителя
за редактиране се предава в GET
параметър:
<?php
$id = $_GET['id'];
?>
Нека формираме заявка за получаване на потребителя:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Нека изпълним заявката:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Нека получим данните за потребителя в променлива:
<?php
$user = mysqli_fetch_assoc($result);
?>
Нека изведем тези данни в нашата форма:
<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:
<form action="save.php" method="POST">
При това GET параметър ще предаваме
id на потребителя за редактиране:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Страница за запазване
На страницата save.php ще получим изпратените
данни:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Нека формираме заявка за актуализация:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Нека изпълним заявката:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Нека изведем съобщение за успех на операцията:
<?php
echo 'Потребителят е успешно променен!';
?>
Практически задачи
Реализирайте страницата edit.php за редактиране
на потребител.
Реализирайте страницата save.php за запазване
на резултата от редактирането.
На страницата index.php изведете на
екрана списък с потребители така, че за всеки
потребител да има връзка за неговото редактиране:
<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>
Реализирайте обработката на формата на страницата edit.php.