Επεξεργασία εγγραφής στη βάση δεδομένων σε PHP
Ας υλοποιήσουμε τώρα την επεξεργασία του χρήστη.
Για αυτό θα χρειαστούμε δύο σελίδες: τη σελίδα
edit.php, όπου θα βρίσκεται η φόρμα
για την επεξεργασία του χρήστη, και τη σελίδα
save.php, στην οποία θα υποβάλλεται η φόρμα
για subsequent αποθήκευση.
Σελίδα επεξεργασίας
Αρχικά, στη σελίδα 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.