Tietueen muokkaaminen tietokannassa PHP:llä
Käytetään nyt käyttäjän muokkaamista.
Tätä varten tarvitsemme kaksi sivua: sivu
edit.php, jolla on
lomake käyttäjän muokkaamiseen, ja sivu
save.php, johon lomake lähetetään
myöhempää tallennusta varten.
Muokkaussivu
Aluksi sivulla edit.php teemme
lomakkeen:
<form action="" method="POST">
<input name="name">
<input name="age">
<input name="salary">
<input type="submit">
</form>
Lataamme tähän lomakkeeseen nykyiset tiedot
käyttäjästä tietokannasta. Olkoon id käyttäjän
muokkaamista varten lähetetään GET
parametrina:
<?php
$id = $_GET['id'];
?>
Muodostetaan kysely käyttäjän hakemiseksi:
<?php
$query = "SELECT * FROM users WHERE id=$id";
?>
Suoritetaan kysely:
<?php
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Saadaan käyttäjän tiedot muuttujaan:
<?php
$user = mysqli_fetch_assoc($result);
?>
Näytetään nämä tiedot lomakkeessamme:
<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>
Muutetaan lomakkeen action niin, että se
lähetetään sivulle save.php:
<form action="save.php" method="POST">
Samalla GET parametrina lähetetään
id muokattavan käyttäjän:
<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">
Tallennussivu
Sivulla save.php saadaan lähetetyt
tiedot:
<?php
$id = $_GET['id'];
$name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
?>
Muodostetaan päivityskysely:
<?php
$query = "UPDATE users SET
name='$name', age='$age', salary='$salary'
WHERE id=$id";
?>
Suoritetaan kysely:
<?php
mysqli_query($link, $query) or die(mysqli_error($link));
?>
Näytetään viesti operaation onnistumisesta:
<?php
echo 'käyttäjä muutettu onnistuneesti!';
?>
Käytännön tehtävät
Toteuta sivu edit.php käyttäjän muokkaamiseen.
Toteuta sivu save.php muokkaustuloksen tallentamiseen.
Sivulla index.php näytä
ruudulla lista käyttäjistä siten, että jokaiselle
käyttäjälle on linkki hänen muokkaamiseensa:
<ul>
<li>user1 <a href="?edit=1">muokkaa</a></li>
<li>user2 <a href="?edit=2">muokkaa</a></li>
<li>user3 <a href="?edit=3">muokkaa</a></li>
</ul>
Toteuta lomakkeen käsittely sivulla edit.php.