PHP PDO Update İşlemi

PHP PDO Update İşlemi

Hepinize merhaba dostlarım :) PHP PDO veri tabanı işlemlerine kaldığımız yerden devam ediyoruz :). Şimdi ise güzel ve bir o kadar da kullanımı dikkat isteyen işlemden bahsedeceğiz yani güncelleme işleminden. Güzel yanından bahsedecek olursak dostlarım birden fazla kaydınız var diyelim mysql tablonuzda. Bunlardan bazılarını güncellemek istiyorsunuz mesela yaşı 18 den büyük olanların ehliyet alma durumunu 1 yapmak istiyorsunuz diyelim. Bunu uzun uzun veri tabanına girip elinizle güncelleme yapmak yerine kısa bir kodla halledebiliyorsunuz :). Kötü yanı ise dostlarım eğer şart belirtmezseniz yaşı 18 den büyük veya küçük diye yazmadığınız anda bütün tabloyu güncellemiş oluyor ve verileir bozmuş oluyorsunuz :). Kullanımı nasıl mı ? Gelin hemen göz atalım

Öncelikle bir ehliyetkurs isimli veri tabanı açalım bu kısım için baglan.php dosyasını yazalım. PHP MySQL bağlantısını okumayanlar veya bağlantı kodlarını tekrar gözden geçirmek isteyen dostlarım için

http://blog.mfsoftware.net/yazi/php-mysql-baglantisi

linki bırakıyorum. Daha sonra içerisine bir tablo oluşturun ve ismine kursiyerler deyin. Bu tablonun kolonlarını da aşağıdaki şekildeki gibi ayarlayın

id ---> int(11) auto_increment not null
adi ---> varchar(255)
soyadi ---> varchar(255)
yasi ----> tinyinteger(2)
ehliyet_alma_durumu ----> tinyinteger(1)

bu şekilde kolonları belirtelim dostlarım. Daha sonrasında 3 adet kayıt ekleyelim MySQL üzerinden

adi = "Mahmut";
soyadi = "Altun";
yasi = 15;
ehliyet_alma_durumu = 0;

adi = "Fatih";
soyadi = "Çınar";
yasi = 21;
ehliyet_alma_durumu = 1;

adi = "Mehmet";
soyadi = "Kışla";
yasi = 19;
ehliyet_alma_durumu = 0;

bu şekilde kaydımızı oluşturduk dostlarım. Şimdi ise gelin kursiyerler.php dosyası oluşturalım ve kursiyerleri oraya listeleyelim

<?php
 include('baglan.php'); // SQL BAĞLANTI DOSYASINI SAYFAYA DAHİL EDELİM
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>PHP PDO Update - Kursiyer Listesi | MFSoftware Blog</title>
  
  <style>
    table thead th{
      border : 2px solid black;
    }
    
    table tbody td{
      border: 2px solid black;
    }
  </style>
  
</head>
<body>

   <?php
    // KURSİYERLERİ VERİ TABANINDAN ÇEKELİM
    $kursiyer = $db->prepare("SELECT * FROM kursiyerler");  // SORGUYU YAZALIM
    $kursiyer->execute();  // SORGUYU ÇALIŞTIRALIM
    $kursiyer_cek = $kursiyer->fetchAll(PDO::FETCH_ASSOC); // TÜM VERİLERİN ÇEKİLMESİNİ İSTEYELİM

   ?>

  <table style="border: 2px solid black;">
    <thead>
      <tr>
      <th>ID</th>
      <th>Kursiyer Adı</th>
       <th>Kursiyer Soyadı</th>
       <th>Kursiyer Yaşı</th>
       <th>Kursiyer Ehliyet Alma Durumu</th>
       <th>İşlemler</th>
    </tr>
    </thead>
    <tbody>
    
    <?php foreach($kursiyer_cek as $key){ ?>
      <tr>
        <td><?php echo $key['id']; ?></td>
        <td><?php echo $key['adi']; ?></td>
        <td><?php echo $key['soyadi']; ?></td>
        <td><?php echo $key['yasi']; ?></td>
        <td><?php echo $key['ehliyet_alma_durumu']; ?></td>
        <td><a href="guncelleme.php?kursiyer_durum_guncelle=<?php echo $key['id]; ?>">Kursiyer Durum Güncelle</a></td>
      </tr>
    <?php } ?>
    </tbody>
  </table>
</body>
</html>

listeleme kodlarını yazmış bulunmaktayız dostlarım :). Şimdi fark ettiyseniz ekstra bir <td> kolonu açtık ve içine <a> etiketi koyup kursiyer durum güncelle dedik. Şimdi hızlıca guncelleme.php dosyası oluştalım ve buradan kursiyer durum güncelleme linkine basılınca oraya ilerlesin. Ve o kısımda da seçilen kursiyerin bilgilerini alalım

<?php
 include('baglan.php'); // SQL BAĞLANTI DOSYASINI SAYFAYA DAHİL EDELİM
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>PHP PDO Update- Kursiyer Bilgisi | MFSoftware Blog</title>
 
  
</head>
<body>

<?php

$kursiyer_id = @$_GET['kursiyer_durum_guncelle']; // KURSİYER ID SİNİ ALDIK

$kursiyer = $db->prepare("SELECT * FROM kursiyerler where id=:kursiyer_id");
$kursiyer->execute(array(
  "kursiyer_id"=>$kursiyer_id
));
$kursiyer_cek = $kursiyer->fetch(PDO::FETCH_ASSOC);

 ?>

  <form method="POST" action="islem.php?kursiyer_guncelle=<?php echo $kursiyer_cek['id']; ?>">
    <label for="">Adi</label>
    <input type="text" value="<?php echo $kursiyer_cek['adi']; ?>" name="adi">
    <br>
    <label for="">Soyadı</label>
    <input type="text" value="<?php echo $kursiyer_cek['soyadi']; ?>" name="soyadi">
    <br>
    <label for="">Yaşı</label>
    <input type="number" value="<?php echo $kursiyer_cek['yasi']; ?>" name="yasi">
    <br>
    <label for="">Ehliyet alma durumu</label>
    <select name="ehliyet_alma_durumu">
      <option value="1" <?php echo ($kursiyer_cek['ehliyet_alma_durumu']==1) ? 'selected':'' ?>>Alabilir</option>
      <option value="0" <?php echo ($kursiyer_cek['ehliyet_alma_durumu']==0) ? 'selected':'' ?>>Alamaz</option>
    </select>
    <br>
    <button type="submit" name="kursiyer_guncelle">Güncelle</button>
  </form>

</body>
</html>

evet dostlarım güncelleme sayfası da tamamdır. Şimdi islem.php dosyası açalım ve güncelleme işlemine başlayalım

<?php 

include('baglan.php');  // BAGLAN.PHP DOSYASINI DAHİL ETTİK

// KURSİYER GÜNCELLEME KISMI
if(@$_POST['kursiyer_guncelle']){

  $id = @$_GET['kursiyer_guncelle']; // ID BİLGİSİNİ ALALIM
  $adi = @$_POST['adi']; // AD BİLGİSİNİ ALALIM
  $soyadi = @$_POST['soyadi']; // SOYADI BİLGİSİNİ ALALIM
  $yasi = @$_POST['yasi']; // YAŞ BİLGİSİNİ ALALIM
  $ehliyet_alma_durumu = @$_POST['ehliyet_alma_durumu']; // EHLİYET ALMA DURUMUNU ALALIM  

  if($id == "" || $adi == "" || $soyadi == "" || $yasi == "" || $ehliyet_alma_durumu == ""){
   
   // HERHANGİ BİRİ BOŞ İSE
   echo "Veriler Boş Olamaz";
  }
  else{
                          // GUNCELLEME KODUNU YAZALIM
    $guncelle = $db->prepare("UPDATE kursiyerler SET adi=:adi,soyadi=:soyadi,yasi=:yasi,ehliyet_alma_durumu=:ehliyet_alma_durumu WHERE id=:id");

    $update = $guncelle->execute(array(
       "adi"=>$adi,
       "soyadi"=>$soyadi,
       "yasi"=>$yasi,
       "ehliyet_alma_durumu"=>$ehliyet_alma_durumu,
       "id"=>$id
    ));

   if($update){
    //  GUNCELLEME BAŞARILI İSE
    header("Locaation: kursiyerler.php");
   }else{
    // GUNCELLEME İŞLEMİ BAŞARISIZ İSE
     echo "Güncelleme İşleminde Hata Oluştu";
    }

  }

}

?>

evet dostlarım güncelleme işlemimiz bu kadar basit :) Yalnız aman deyim WHERE şartını yazmayı unutmayın. Biz bu işlemde gelen id ye göre güncellema yaptırmak istedik sizler projelerinizde belirlediğiniz şartlara göre güncelleme işlemi yaptırabilirsiniz :)

Yazımız burada sonlanıyor dostlarım :) Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıJavascript ile Değişken Tanımlama ve Kullanma
Sonraki YazıPHP Karar Yapıları
Yorumlar (1)
Tamer YİĞİT
12.04.2022

Hocam merhaba kusura bakmayın sizi rahatsız ediyorum. Özür Dilerim Aşağıdaki gibi bir işlem yapmak istiyorum. bana bu konuda yardımcı ola bilirmisiniz. update komutunu beceremedim.

Yorum Yapabilirsiniz