PHP MySQL ile Veri Tabanı Sınıfı

Bu dersimizde sınıf yapısını sade şeklinde bir veri tabanı scripti için kullanmayı öğrenelim.

Bu dersimizde sınıf yapısını sade şeklinde bir veri tabanı scripti için kullanmayı öğrenelim.

PHP Sınıf (class) nedir?

Sınıflar bir çok fonksiyonu birarada saklayan yapılardır. Bu yapılar projelerimizde bize oldukça fayda sağlar. En önemlisi, zaman kaybını engeller ve ekip çalışmasını kolaylaştırır.

Öncelikle Php MySQL kullanırken ihtiyaç duyacağımız DENEME veri tabanımızı oluşturuyoruz, daha sonra bağlantı dosyamızı oluşturuyoruz.

MYSQL DENEME VERİTABANI DOSYASI


-- Veritabanı: `deneme`

--Tablo için tablo yapısı `uyeler`

CREATE TABLE IF NOT EXISTS `uyeler` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `kadi` varchar(255) CHARACTER SET utf8 NOT NULL,

  `sifre` varchar(255) CHARACTER SET utf8 NOT NULL,

  `aciklama` varchar(255) CHARACTER SET utf8 NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin5 AUTO_INCREMENT=16 ;

-- Tablo döküm verisi `uyeler`

INSERT INTO `uyeler` (`id`, `kadi`, `sifre`, `aciklama`) VALUES



İŞLEM BASAMAĞI

Deneme veri tabanı oluştururken id, kadi, sifre, aciklama sütunlarını oluşturuyoruz.

baglanti.php

<?php 

    header
(‘Content-Typetext/htmlcharset=utf-8’); // Tr Sorunu için.Hata alırsanız kaldırabilirsiniz.

    
if (!@$baglan=mysql_connect(“localhost”,”root”,””)) // Bağlantı bilgileriniz. Genellikle host loacalhost olur. Şifreniz yok ise KULLANICI ŞİFRE siliniz boş bırakınız.

    
{

    die(
“Mysql’a bağlantı kurulamadı!.mysql_error());

    }

    if (!@
mysql_select_db(“deneme”,$baglan)){  // Veritabanı Adı. VERİ TABANINIZDA İLETİSİM ADLI VERİ TABANI OLUŞTURMALISINIZ.

    
die(“Veritabanına bağlantı kurulamadı!.mysql_error());

    }

    
// Türkçe Karekter Sorunu İçin

    
mysql_query(“SET NAMES utf8”);

    
mysql_query(“SET CHARACTER SET utf8”);

    
mysql_query(“SET COLLATION_CONNECTION=’utf8_general_ci’”);    

?> ?>



Veri tabanımızı ve bağlantı dosyamızı oluştururken uyguladığımız yöntemleri ders kodlarında görmekteyiz. Bağlantı dosyamızı oluşturduktan sonra tek yapmamız gereken ekleme, silme, güncelleme, listeleme sayfamızı index.php içerisinde oluşturmak olacak.

index.php

<?php 

include “baglanti.php”//MYSQL baglantı dosyamızı çağırıyoruz

?>

<!DOCTYPE html>

<html>

<head>

    <meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8” /> <!-- Türkçe dil sorunu için  -->    

    <title>Class</title> <!-- Sayfamızın başlığı -->    

    <style type=”text/css”> <!-- Stil kodlarımızı burada tanımlıyoruz -->

    ul li a {color:#575757;}

    ul li {list-style-type:none; Float:left; margin-left:40px; width:100px; display:block;  border-right:1px solid #333;}

    </style>    

    </head>

<body>

    <ul>

    <li><a href=”?yer=ekle”>Ekle</a></li>

    <li><a href=”?yer=sil”>Sil</a></li>

    <li><a href=”?yer=güncelle”>Güncelle</a></li>

    <li style=”border:none;”><a href=”?yer=listele” >İstege görelistele</a></li>

    </ul>

        

    @$yer = $_GET[‘yer’]; // Açıklama 1.1

    switch($yer){ //Bu fonksiyon belirlediğimiz koşulların gerçekleşmesi halinde o koşula ait olan  kod blogunu çalıştırır.    

    case ‘ekle’; //case ile switch kosulunu kontrol ederek bu değer “ekle” eşit ise bu kod blogu calışır.

    echo ‘<br/><br/><br/><br/>

    <form action=”uygula.php?alan=ekleme” method=”post”>

    kullanici adi:<input type=”text” name=”kadi”/><br>

    şifre:<input type=”text” name=”sifre”/><br/>

    not:<input type=”text” name=”not”/><br/>

    <input type=”submit”/>    

    </form>

    ‘;    

    break;  //break ise bu kod bloklarını sonlandırır.    

    case ‘sil’;//case ile switch kosulunu kontrol ederek bu değer “sil” eşit ise bu kod blogu calışır.

    echo ‘<br/><br/><br/><br/>

    <form action=”uygula.php?alan=sil” method=”POST”>

    <input type=”text” name=”kisiad”/>

    <input type=”submit” value=”sil”/>

    </form>

    ‘;

    break;    

    case ‘listele’; //case ile switch kosulunu kontrol ederek bu değer “listele” eşit ise bu kod blogu calışır.

    echo ‘<br/><br/><br/>

    <form action=”uygula.php?alan=listele” method=”POSt”>    

    <select name=”kategori” id=””>    

    <option value=”kadi”>Ada göre</option>

    <option value=”id”>İd sırası</option>    

    </select>    

    <input type=”submit”/>

    </form>

        ‘;

    break;    

    case ‘güncelle’;    //case ile switch kosulunu kontrol ederek bu değer “güncelle” eşit ise bu kod blogu calışır.

    echo ‘<br/><br/><br/><br/>

    <form action=”uygula.php?alan=duzenle” method=”POST”>

    Güncellenecek kullanıcı: <input type=”text” name=”kulladi”/><br/>

    sifreyi düzenle: <input type=”text” name=”yenile”/><br/>

    

    <input type=”submit” value=”güncelle”/>

    </form>

    ‘;

    break;

        }

    ?>    

</body>

</html> ?>



Açıklama 1.1: Öncelikle Get Fonksiyonu ile ‘yer’ değişkenini çekiyoruz başına hata operatörünü koymamızın sebebi ise yer değişkeni ekrana ufak bir hata yazdırıyor. Bu operatör ile hatayı gideriyoruz.
Form içerisinde kullanılan action yöntemi:

Örnek: uygula.php?alan=duzenle

Bu yöntem ile tarayıcıda alan değişkenine duzenle verisini atayarak switch ile bu değişkenin kontrolünü yaptırarak ekrana alan değişekene ait olan case kod blogunun çalışmasını sağlarız.
Yukaridaki index.php dosyamızda uygulamış olduğumuz yöntemler sınıf dosyamızda ekleme, silme, güncelleme, listeleme işlemlerini ve görevlerini gerçekleştirelim.

uygula.php

Php

include_once “baglanti.php”;  //MYSQL baglantı dosyamızı cagırıyoruz.

class deneme{     //Deneme adında Sınıfımızı oluşturuyoruz

    private    $tektırank1=”’”, $tektırank2=”’”;   //private ile sadece sınıf içi kullanabilmemiz için iki değişken oluşturuyoruz

        

    function ekle($tablo,$veri){           // Açıklama 1.2    

        $x=array_keys($veri);         // array_keys ile dizi anahtarlarını bir diziye aktaralım sutunları belirtmek için        $sutunlar=implode(“,”,$x);      //Açıklama 1.3

        $veriler=implode(“ ‘,’ “,$veri);  //burada ise dizi olarak gelen sutunlara eklenecek verileri birleştiriyoruz 

        $e = $this->tektırank1.$veriler.$this->tektırank2;  //Açıklama 1.4

        $ekle_sql=mysql_query(“INSERT INTO “.$tablo.”(“.$sutunlar.”) values(“.$e.”)”);       //burada ekleme işlemini gerçekleştiriyoruz.

        if($ekle_sql){echo “ekleme işlemi basarılı”;}    //ekleme basarılı ise bu cıktı ekrena gelir

        else{echo mysql_error();}    //ekleme işlemi basarılı değilse  ekrana mysql hatası bastırıyoruz.                    

    }    

    function sil($tablo,$sorgu){         //Açıklama 1.5        

            $sql=mysql_query(“DELETE FROM “.$tablo.” WHERE “.$sorgu.” “);    // Açıklama 1.6

            if($sql){echo “silme işlemi basarılı”;}      //ekleme basarılı ise bu cıktı ekrena gelir

            else{echo mysql_error();}    //silme işlemi basarılı değilse  ekrana mysql hatası bastırıyoruz.    

    }

        function duzenle($tablo,$degisecekler,$karsilastirma){      //Açıklama 1.7            $Komut=mysql_query(“update “.$tablo.” set “.$degisecekler.” where “.$karsilastirma.” “);

            if($Komut){echo ‘Sifreniz güncellendi’;}       //güncelleme  basarılı ise bu cıktı ekrena gelir            else{echo mysql_error();}    //güncelleme  işlemi basarılı değilse  ekrana mysql hatası bastırıyoruz.    

    }    

    function listele($sorgu,$listebicimi){   )      //Açıklama 1.8     

             $sql = mysql_query(“”.$sorgu.””);    //burada sorgumuzu gönderiyoruz

            while($dizi_ata=mysql_fetch_array($sql)){    //burda ise listemeyi gerçekleştiriyoruz.        

            echo $dizi_ata[$listebicimi].”<br/>”;        

            } 

    }    

}

/*

Açıklama 1.9

************/

$yer=$_GET[‘alan’];

    switch($yer){

        case ‘ekleme’;

        $kadi=$_POST[‘kadi’];

        $sifre=$_POST[‘sifre’];

        $not=$_POST[‘not’];

        $vt = new deneme();     //burada bilindik üzere sınıfımızı new komutuyla cagırıp vt değişkenine atıyoruz

        $vt->ekle(‘uyeler’,array(       //bu alanda ekleme işlemi için fonksiyonumuza verileri gönderiyoruz

        “id”=>””,

        “kadi”=>$kadi,

        “sifre”=>$sifre,

        “aciklama”=>$not    

        ));        

        break;

        case ‘sil’;        

        $ad=$_POST[‘kisiad’];

        $e=”’”.$ad.”’”;    

        $vt=new deneme();

        $vt->sil(“uyeler”,”kadi=”.$e.””);        //bu alanda sil işlemi için sil  fonksiyonumuza verileri gönderiyoruz.

        break;

        case ‘duzenle’;    

        $kadi   =   $_POST[‘kulladi’];

        $yenile =    $_POST[‘yenile’];

        $cevir=”’”.$kadi.”’”;

        $cevir2=”’”.$yenile.”’”;

        $vt = new deneme();

        $vt->duzenle(“uyeler”,”sifre=”.$cevir2.””,”kadi=”.$cevir.””);    //bu alanda güncelleme işlemi için fonksiyonumuza verileri gönderiyoruz.

        break;        

        case ‘listele’;

        $alan = $_POST[‘kategori’]; //Post fonksiyonu kategori ile name’ye sahip olan bilgiyi cekiyoruz.    

        $listebicimi=$alan;     

        $vt = new deneme();

         $vt->listele(“SELECT * FROM uyeler ORDER BY “.$alan.” ASC”,$listebicimi); //bu alanda listeleme işlemi için fonksiyonumuza verileri gönderiyoruz.

        break;

    }

?>



Açıklama 1.2: İlk fonksiyonumuzu tabloya veri ekleme için kullanacağız. Bu fonksiyon iki paremetre alır. İlk değerde tablo adını alır, ikinci parametre ise tabloya eklenecek bilgileri ve sütun isimlerini dizi olarak alır.

Açıklama 1.3: Burada sütunların belirtilmesi için diziye aktardığımız anahtarları birleştirme için implode fonksiyonundan yararlanıyoruz

Açıklama 1.4: Ekleme işlemi için verilerin tırnak sorunu yasanmaması için böyle bi değişken hazırladık.

Açıklama 1.5: Bu fonksiyon ile tablodan veri silme işlemi için kullanılır. Bu fonksiyon iki paremetre alır: İlki tablo ismi, ikincisi ise silinecek olan veriye ait kullanıcı adı.

Açıklama 1.6: Burada sorgumuzla beraber silme işlemini gerçekleştiriyoruz. Aldığımız kullanıcı adına denk gelen veriyi siliyoruz

Açıklama 1.7: Bu fonksiyon ile tabloda veri güncelleme işlemi için kullanacağız. Üç parametre alır: Tablo ismi, değişecek olan alan ve veri ve değişecek olan sütunun karşılaştırma şekli.

Açıklama 1.8: Bu fonksiyon ile tabloda veri listeleme işlemi için kullanılır. Bu fonksiyon iki parametre alır: İlki sorguyu, ikincisi ise listemele türünü.

Açıklama 1.9: Bu alanda index.php’deki gelen formlara göre switch case ile form bilgilerini çekerek sınıfımıza aktarıp işlemlerimizi gerçekleştiriyoruz.

Uygula.php ile gerçekleştirmiş olduğumuz işlemler ve görevleri yukarıdaki anlatımlarda sizlere anlatmaya ve öğretmeye çalıştık.

Diğer projelerimizde görüşmek dileğiyle...
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git