İNTERNET PROGRAMCILIĞI 2 Öğr. Gör. Canan ASLANYÜREK
Phpmyadmine girebilmek için internet tarayıcısında http://localhost/phpMyAdmin yazıp enter a basıyoruz.
Şimdi de “ders” veritabanı oluşturalım. Veritabanı isimlerinde türkçe karakter kullanmayınız.
Veritabanımıza aşağıdaki şekilde tablo ekleyelim.
Tablomuza aşağıdaki gibi sütunları ekleyelim ve kaydet butonuna tıklayalım.
Ekle butonuna tıklayıp tablomuza veri ekleyebiliriz.
İndex.php <!DOCTYPE html> <html> <head> <title>CRUD İŞLEMLERİ</title> </head> <body> <h1>Veri tabanı PDO Kayıt İşlemleri</h1> <hr> <form action="islem.php" method="POST"> <input type="text" required="" name="bilgilerim_ad" placeholder="Adınızı Giriniz..."> <input type="text" required="" name="bilgilerim_soyad" placeholder="SoyAdınızı Giriniz..."> <input type="email" required="" name="bilgilerim_mail" placeholder=" Mail Adresinizi Giriniz..."> <input type="text" required="" name="bilgilerim_yas" placeholder="Yaşınızı Giriniz..."> <button type="submit" name="insertislemi">Formu Gönder</button> </form> </body> </html>
İslem.php <?php if(isset($_POST['insertislemi'])){ echo $_POST['bilgilerim_ad']; } ?>
baglan.php <?php try{ $db=new PDO("mysql:host=localhost;dbname=ders;charset=utf8",'root','1234 1234'); echo "Veri tabanı bağlantısı başarılı"; } catch(PDOException $e) { echo $e->getMessage(); ?>
baglan. php sayfasında veritabanı bağlantısı yapıldı baglan.php sayfasında veritabanı bağlantısı yapıldı. Diğer sayfalardan veritabanına bağlanırken bu kodlara ihtiyaç olacak. Bu kodları yeniden yazman yerine örneğin islem.php sayfasının en başında <?php require_once 'baglan.php‘ ?> Kodu yazıldığı zaman veritabanına erişim sağlanabilir.
Kayıt Ekleme(islem.php) if($insert){ //echo "kayıt başarılı"; header("Location:index.php?durum=ok");//index.php ye yönlendiriyor exit(); //Her headerden sonra exit kullanının.durum=ok ile işlem sonucunu alabiliyoruz }else{ //echo "kayıt başarısız"; header("Location:index.php?durum=no"); exit(); } ?> <?php //include 'baglan.php'; require_once 'baglan.php'; if(isset($_POST['insertislemi'])){ //sağ taraf sütunların takma isimleri $kaydet=$db->prepare("INSERT into bilgilerim SET bilgilerim_ad=:bilgilerim_ad, bilgilerim_soyad=:bilgilerim_soyad, bilgilerim_mail=:bilgilerim_mail, bilgilerim_yas=:bilgilerim_yas "); //sağ taraf sütun isimleri.Sol taraf ise takma isimler $insert=$kaydet->execute(array( 'bilgilerim_ad'=>$_POST['bilgilerim_ad'], 'bilgilerim_soyad'=>$_POST['bilgilerim_soyad'], 'bilgilerim_mail'=>$_POST['bilgilerim_mail'], 'bilgilerim_yas'=>$_POST['bilgilerim_yas'] ));
index.php sayfasında kayıdın başarılı olup olmadığını anlamak için GET metoduyla geriye işlem sonucunun değerini döndürmeyi header("Location:index.php?durum=ok"); kodu ile alabilirsiniz Bunun için index.php sayfasında formun üzerine <?php if($_GET['durum']=="ok"){ echo "kayıt işlemi başarılı"; }elseif ($_GET['durum']=="no") { echo "işlem başarısız"; } ?> Kodlarını yazarsanız işlemin başarılı olup olmadığı bilgisini verir.
Select İşlemi(Verileri Listeleme) Listelemeyi index.php sayfasında yapalım. O yüzden de veritabanı bağlantısı için sayfanın başına aşağıdaki kodu yazmanız gerekmektedir. <?php require_once 'baglan.php'; ?> index.php sayfasında formun altına <br> <h4>Kayıt Listeleme</h4> <hr> Etiketlerini yaptıktan sonra kayıt listeleme kodunu yazmaya başlayalım.
index.php $bilgilerimsor=$db->prepare("Select * from bilgilerim"); $bilgilerimsor->execute(); $bilgilerimcek=$bilgilerimsor->fetch(PDO::FETCH_ASSOC); print_r($bilgilerimcek); // sadece ilk kayıt gelir echo "<br>"; echo $bilgilerimcek['bilgilerim_ad']; // sadece bilgilerim_ad gelir.
Tüm verileri çekebilmek için 1.yol <?php $bilgilerimsor=$db->prepare("Select * from bilgilerim"); $bilgilerimsor->execute(); while($bilgilerimcek=$bilgilerimsor- >fetch(PDO::FETCH_ASSOC)){ echo $bilgilerimcek['bilgilerim_ad']; } ?>
Select Tüm verileri listelemek 2.yol (index.php) tablo oluşturalım. <table style="width:60%" border="1"> <tr> <th>SNO</th> <th>Id</th> <th>Ad</th> <th>Soyad</th> <th>Mail</th> <th>Yaş</th> <th width="50">İşlemler</th> </tr> <?php $say=0; $bilgilerimsor=$db->prepare("Select * from bilgilerim"); $bilgilerimsor->execute(); while($bilgilerimcek=$bilgilerimsor->fetch(PDO::FETCH_ASSOC)){ $say++; ?>
Select <tr> <td><?php echo $say ?></td> <td><?php echo $bilgilerimcek['bilgilerim_id'] ?></td> <td><?php echo $bilgilerimcek['bilgilerim_ad'] ?></td> <td><?php echo $bilgilerimcek['bilgilerim_soyad'] ?></td> <td><?php echo $bilgilerimcek['bilgilerim_mail'] ?></td> <td><?php echo $bilgilerimcek['bilgilerim_yas'] ?></td> <td align="center"><a href=""><button>Sil</button></td></a> </tr> <?php } ?> </table>
Update(Düzenle)(index.php) Select işleminde yaptığımız tabloya bir işlemler sütunu daha ekleyelim. <th width="50">İşlemler</th> Bir alt satırda da sil butonun üstüne Düzenle butonunu oluşturalım. <td align="center"><a href="duzenle.php?bilgilerim_id=<?php echo $bilgilerimcek['bilgilerim_id'] ?>"><button>Düzenle</button></td></a> Bunları kaydedin ve duzenle.php adında yeni bir çalışma sayfası oluşturun.
duzenle.php <?php require_once 'baglan.php'; ?> <!DOCTYPE html> <html> <head> <title>CRUD İŞLEMLERİ</title> </head> <body> <h1>Veri tabanı PDO Düzenleme İşlemleri</h1> <hr> if($_GET['durum']=="ok"){ echo "kayıt işlemi başarılı"; }elseif ($_GET['durum']=="no") { echo "işlem başarısız"; }
duzenle.php <?php $bilgilerimsor=$db->prepare("select * from bilgilerim where bilgilerim_id=:id"); $bilgilerimsor->execute(array( 'id'=>$_GET['bilgilerim_id'])); $bilgilerimcek=$bilgilerimsor->fetch(PDO::FETCH_ASSOC); ?>
duzenle.php <form action="islem.php" method="POST"> <input type="text" required="" name="bilgilerim_ad" value="<?php echo $bilgilerimcek['bilgilerim_ad']; ?>"> <input type="text" required="" name="bilgilerim_soyad" value="<?php echo $bilgilerimcek['bilgilerim_soyad']; ?>"> <input type="email" required="" name="bilgilerim_mail" value="<?php echo $bilgilerimcek['bilgilerim_mail']; ?>"> <input type="text" required="" name="bilgilerim_yas" value="<?php echo $bilgilerimcek['bilgilerim_yas']; ?>"> <input type="hidden" required="" name="bilgilerim_id" value="<?php echo $bilgilerimcek['bilgilerim_id']; ?>"> <button type="submit" name="updateislemi">Formu Düzenle</button> </form> <br> </body> </html>
islem.php Update işlemini gerçekleştirmek için islem.php sayfasına gidip Select işleminden sonraki alana aşağıdaki kodları yazınız. if(isset($_POST['updateislemi'])){ $bilgilerim_id=$_POST['bilgilerim_id']; //echo $_POST['bilgilerim_ad']; $kaydet=$db->prepare("UPDATE bilgilerim SET bilgilerim_ad=:bilgilerim_ad, bilgilerim_soyad=:bilgilerim_soyad, bilgilerim_mail=:bilgilerim_mail, bilgilerim_yas=:bilgilerim_yas where bilgilerim_id={$_POST['bilgilerim_id']} ");
islem.php $insert=$kaydet->execute(array( 'bilgilerim_ad'=>$_POST['bilgilerim_ad'], 'bilgilerim_soyad'=>$_POST['bilgilerim_soyad'], 'bilgilerim_mail'=>$_POST['bilgilerim_mail'], 'bilgilerim_yas'=>$_POST['bilgilerim_yas'] )); //sağ taraf yukarı sol tarafla aynı olmalı ve herhangi bir değişken tanımlanabilir if($insert){ //echo "kayıt başarılı"; header("Location:duzenle.php?durum=ok&bilgilerim_id=$bilgilerim_id");//index.php ye yönlendiriyor exit();//Her headerden sonra exit kullanının.durum=ok ile işlem sonucunu alabiliyoruz }else{ //echo "kayıt başarısız"; header("Location:duzenle.php?durum=no&bilgilerim_id=$bilgilerim_id"); exit(); } ?>
Delete işlemi İndex.php de oluşturduğumuz sil butonunu aşağıdaki şekilde güncelleyin. <td align="center"><a href="islem.php?bilgilerim_id=<?php echo $bilgilerimcek['bilgilerim_id'] ?>&bilgilerimsil=ok"><button>Sil</button></td></a> Silme işlemini gerçekleştirmek için islem.php sayfasına gidin.
islem.php Aşağıdaki kodları ekleyin. if($_GET['bilgilerimsil']=="ok"){ $sil=$db->prepare("DELETE from bilgilerim where bilgilerim_id=:id"); $kontrol=$sil->execute(array('id'=>$_GET['bilgilerim_id'])); if($kontrol){ //echo "kayıt başarılı"; header("Location:index.php?durum=ok");//index.php ye yönlendiriyor exit();//Her headerden sonra exit kullanının.durum=ok ile işlem sonucunu alabiliyoruz }else{ //echo "kayıt başarısız"; header("Location:index.php?durum=no"); exit(); }
KAYNAK Ebubekir Yaşar, Turgut Özseven, İnternet Programcılığı 2