PHP'de Veritabanı Kaydını Düzenleme

Şimdi kullanıcı düzenlemeyi uygulayalım. Bunun için iki sayfaya ihtiyacımız olacak: edit.php sayfası, kullanıcıyı düzenlemek için formun yer alacağı sayfa olacak ve save.php sayfası, formun gönderileceği ve daha sonra kaydedileceği sayfa olacak.

Düzenleme Sayfası

Öncelikle edit.php sayfasında bir form oluşturalım:

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

Bu forma, veritabanındaki mevcut kullanıcı verilerini yükleyeceğiz. Kullanıcının id bilgisinin düzenlenmesi için GET parametresinde iletildiğini varsayalım:

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

Kullanıcıyı almak için bir sorgu oluşturalım:

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

Sorguyu çalıştıralım:

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

Kullanıcı verilerini bir değişkene alalım:

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

Bu verileri formumuzda gösterelim:

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>

Formun action özelliğini, save.php sayfasına gönderilecek şekilde değiştirelim:

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

Bu sırada GET parametresi olarak düzenlenecek kullanıcının id bilgisini ileteceğiz:

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

Kaydetme Sayfası

save.php sayfasında, gönderilen verileri alalım:

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

Güncelleme için bir sorgu oluşturalım:

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

Sorguyu çalıştıralım:

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

İşlemin başarılı olduğuna dair bir mesaj gösterelim:

html<?php
  echo 'kullanıcı başarıyla değiştirildi!';
?>

Pratik Görevler

Задание 1

Kullanıcıyı düzenlemek için edit.php sayfasını uygulayın.

Задание 2

Düzenleme sonucunu kaydetmek için save.php sayfasını uygulayın.

Задание 3

index.php sayfasında, her kullanıcı için düzenleme bağlantısı bulunan bir kullanıcı listesini ekranda gösterin:

html<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>
Задание 4

edit.php sayfasındaki form işlemesini uygulayın.