Adatbázis rekord szerkesztése PHP-ben

Most valósítsuk meg a felhasználó szerkesztését. Ehhez két oldalra lesz szükségünk: a edit.php oldalra, amelyen a felhasználó szerkesztésére szolgáló űrlap található, és a save.php oldalra, amelyre az űrlap elküldésre kerül a későbbi mentés érdekében.

Szerkesztő oldal

Először a edit.php oldalon készítsük el az űrlapot:

edit.php<form action="" method="POST">
  <input name="name">
  <input name="age">
  <input name="salary">
  <input type="submit">
</form>

Ebbe az űrlapba fogjuk betölteni a felhasználó aktuális adatait az adatbázisból. Legyen a felhasználó id-ja a szerkesztéshez GET paraméterben átadva:

edit.php<?php
  $id = $_GET['id'];
?>

Alakítsuk ki a lekérdezést a felhasználó lekéréséhez:

edit.php<?php
  $query = "SELECT * FROM users WHERE id=$id";
?>

Végezzük el a lekérdezést:

edit.php<?php
  $result = mysqli_query($link, $query) or die(mysqli_error($link));
?>

Kapjuk meg a felhasználó adatait egy változóba:

edit.php<?php
  $user = mysqli_fetch_assoc($result);
?>

Jelenítsük meg ezeket az adatokat az űrlapunkban:

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>

Változtassuk meg az űrlap action attribútumát úgy, hogy a save.php oldalra kerüljön küldésre:

html<form action="save.php" method="POST">

Eközben GET paraméterként adjuk át a szerkesztendő felhasználó id-ját:

html<form action="save.php?id=<?= $_GET['id'] ?>" method="POST">

Mentés oldal

A save.php oldalon kapjuk meg az elküldött adatokat:

html<?php
  $id = $_GET['id'];
  $name = $_POST['name'];
  $age = $_POST['age'];
  $salary = $_POST['salary'];
?>

Alakítsuk ki a frissítési lekérdezést:

html<?php
  $query = "UPDATE users SET
    name='$name', age='$age', salary='$salary'
  WHERE id=$id";
?>

Végezzük el a lekérdezést:

html<?php
  mysqli_query($link, $query) or die(mysqli_error($link));
?>

Jelenítsük meg a művelet sikerességéről szóló üzenetet:

html<?php
  echo 'a felhasználó sikeresen módosítva!';
?>

Gyakorlati feladatok

Задание 1

Valósítsa meg a edit.php oldalt a felhasználó szerkesztéséhez.

Задание 2

Valósítsa meg a save.php oldalt a szerkesztés eredményének mentéséhez.

Задание 3

A index.php oldalon jelenítse meg a felhasználók listáját úgy, hogy minden felhasználóhoz tartozzon egy szerkesztési link:

html<ul>
  <li>user1 <a href="?edit=1">szerkesztés</a></li>
  <li>user2 <a href="?edit=2">szerkesztés</a></li>
  <li>user3 <a href="?edit=3">szerkesztés</a></li>
</ul>
Задание 4

Valósítsa meg az űrlap feldolgozását a edit.php oldalon.