Editácia záznamu v databáze na PHP
Poďme teraz implementovať editáciu používateľa.
Na to budeme potrebovať dve stránky: stránku
edit.php, na ktorej bude umiestnený
formulár na editáciu používateľa, a stránku
save.php, na ktorú bude formulár odoslaný
na následné uloženie.
Stránka editácie
Na začiatok na stránke edit.php vytvorme
formulár:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
Do tohto formulára načítame aktuálne údaje
používateľa z databázy. Nech id používateľa
pre editáciu je prenášané v GET
parametri:
<?php
$id = $_GET['id'];
?>
Vytvorme dopyt na získanie používateľa:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Vykonajme dopyt:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Získame údaje používateľa do premennej:
<?php
$user = mysqli_fetch_assoc($result);
?>
Vypíšme tieto údaje v našom formulári:
<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>
Zmeňme action formulára tak, aby sa
odosielala na stránku save.php:
<form action="save.php" method="POST">
Pričom GET parametrom budeme prenášať
id používateľa pre editáciu:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Stránka uloženia
Na stránke save.php získame odoslané
údaje:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Vytvorme dopyt na aktualizáciu:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Vykonajme dopyt:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Vypíšme správu o úspechu operácie:
<?php
echo 'používateľ úspešne zmenený!';
?>
Praktické úlohy
Implementujte stránku edit.php pre editáciu
používateľa.
Implementujte stránku save.php pre uloženie
výsledku editácie.
Na stránke index.php vypíšte na
obrazovku zoznam používateľov tak, aby pre každého
používateľa bol odkaz na jeho editáciu:
<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>
Implementujte spracovanie formulára na stránke edit.php.