Editace záznamu v databázi v PHP
Pojďme nyní implementovat editaci uživatele.
K tomu budeme potřebovat dvě stránky: stránku
edit.php, na které bude umístěn
formulář pro editaci uživatele, a stránku
save.php, na kterou bude formulář odeslán
pro následné uložení.
Stránka pro editaci
Nejprve na stránce edit.php vytvoříme
formulář:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
Do tohoto formuláře budeme načítat aktuální data
uživatele z databáze. Nechť je id uživatele
pro editaci předáno v GET
parametru:
<?php
$id = $_GET['id'];
?>
Vytvoříme dotaz pro získání uživatele:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Provedeme dotaz:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Získáme data uživatele do proměnné:
<?php
$user = mysqli_fetch_assoc($result);
?>
Vypíšeme tato data v našem formuláři:
<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>
Změníme action formuláře tak, aby se
odesílala na stránku save.php:
<form action="save.php" method="POST">
Přičemž GET parametrem budeme předávat
id uživatele pro editaci:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Stránka pro uložení
Na stránce save.php získáme odeslaná
data:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Vytvoříme dotaz pro aktualizaci:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Provedeme dotaz:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Vypíšeme zprávu o úspěchu operace:
<?php
echo 'uživatel úspěšně změněn!';
?>
Praktické úkoly
Implementujte stránku edit.php pro editaci
uživatele.
Implementujte stránku save.php pro uložení
výsledku editace.
Na stránce index.php vypište na
obrazovku seznam uživatelů tak, aby pro každého
uživatele byl odkaz pro jeho editaci:
<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 zpracování formuláře na stránce edit.php.