• 26-09-2010, 20:47:34
    #1
    Eposta Aktivasyonu Gerekmekte
    Kendi yazdığım veritabanı sınıfımı paylaşıyım. Sadedir ama her işimi çok basit şekilde hallediyorum.

    NZ-Query.php
    <?php
    /* |NZ_DBQuery | @mail = nizzo@windowslive.com| */
    
    class NZ_DBQuery
    {
        #    Veritabanı Bağlantı Değişkeni
        var $connect     = null;
        
        #    SQL Sorgu Cümleciği Değişkeni
        var $sql         = null;
        
        #    Sorgu Çalıştırma Değişkeni
        var $query         = null;
        
        #    Sorgu Sonucunu Tutan Durum Değişkeni
        var $case         = null;
        
        #    Sorgu Sonucu Elde Edilen Satır Sayısını Tutan Değişken
        var $count         = null;
        
        #    Sorguyu Tutan Değişken
        var $row         = null;
        
        #    Sorgu Sonucunu Tutan Değişken
        var $result     = null;
        
        #    Çoklu Sorguda Alınan Verileri Tutan Dizi
        var $results     = array();
        
        
    ###########################################################################
        
        
        /*
         |Veritabanında sorgu çalıştırmak| 
        */
        public function Query()
        {
            
            /* Sorguyu çalıştırıyoruz */
            $this->query = mysql_query($this->sql, $this->connect) or die (mysql_error());
            /**************************/
            
            /* Sonuç olumlumu kontrol ediyoruz */
            if($this->query): 
            
                /* Sorguyu farklı fonksiyonlarda kullanmak için alıyoruz */
                $this->row = $this->query;
                /*********************************************************/ 
                
                /* Sorgu başarılı olduğu için case'i true yapıyoruz */
                return $this->case = true; 
                /****************************************************/
            
            else: 
                
                /* Sorgu başarısızsa case'i false yapıyoruz */
                return $this->case = false;
                /********************************************/ 
    
            endif;
            /***********************************/
            
        }
        /*
         |Query() - sonu| 
        */
        
    #############################################################################
        
        
        /*
         |Veritabanından kayıt sayısı almak| 
        */
        public function Count()
        {
            
            /* Sorgumuzu çalıştırıyoruz */
            $this->Query();
            /****************************/
            
            /* Kayıtları diziye aktaryoruz */
            $this->count = mysql_fetch_array($this->row);
            /*******************************/
            
            /* Dizinin ile elemanını alıyoruz */
            $this->count = $this->count[0];
            /**********************************/
            
            /* Sonuç varsa dönen sorgu sonucunu aksi halde false geri gönderiyoruz */
            if($this->count > 0) return $this->count; else return false; 
            /***********************************************************************/
                
        }
        /*
         |Count() - sonu| 
        */
        
    ############################################################################
        
        /*
         |Veritabanından tek satır çekmek|
        */
        public function Row()
        {
            
            /* İstediğimiz kayıt varmı cevap bekliyoruz */
            if($this->Query() !== false):
            
                /* Dönen kayıtı alip return ile geri gönderiyoruz */
                return $this->result = mysql_fetch_assoc($this->row);
                /**************************************************/
            
            /* İstediğimiz kayıt bulunamamışsa dönüş değerini false yapıyoruz */
            else: return false; endif;
            /******************************************************************/    
            
        }
        /*
         |Row() - sonu| 
        */
    
    #############################################################################
        
        /*
         |Veritabanından birden fazla sonuç çekmek|
        */
        public function Results() //Kullanım : $db->Results();
        {
            
            /* Sorgu'dan dönüş cevabını alıyoruz */
            if($this->Count() !== false):
            
                /* Kayıt bir ve üstü ise verileri almak için çalıştıryoruz */
                $this->Query();
                /***********************************************************/
                
                /* Kayıt alanlarını sırasıyla diziye aktarıyoruz */
                while($this->result = mysql_fetch_array($this->row)):
                
                    /* İşlenen kayıtı dizimize ekliyoruz */
                    $this->results[] = $this->result;
                    /*************************************/
                    
                endwhile;
                /**************************************************/
                
                /* Dizimizin son halini geri gönderiyoruz */
                return $this->results;
                /******************************************/
    
            /* Kayıt bulunamamışsa fonksiyondan false değer gönderiyoruz */
            else: return false; endif;
            /*************************************************************/
            
        }
        /*
         |Results() - sonu|
        */
    }
    ?>

    Kullanılışı
    <?php
    require "NZ-Query.php";
    
    $db = new NZ_DBQuery();
    $db->connect = $veritabaniBaglantiDegiskeni;
    
    $db->sql = "Select * From kategoriler";
    
    /* Sorgu Çalıştırma
        
        if( $db->Query() !== false ) echo "Sorgu sorunsuz çalıştı"; else echo "Sorgu çalışırken hata oluştu";
        
    */
    
    
    /* Kayıt sayısı alma
    
        if( $db->Count() !== false ) echo $db->count; else echo "Kayıt bulunamadı";
    
    */
    
    
    /* Tek kayıt çekme
    
        if($db->Row() !== false) echo $db->result['categoryName']; else echo "Kayıt bulunamadı";
    
    */
    
    
    /* Çoklu kayıt çekme
    
        if( $db->Results() !== false ):
        
            foreach ($db->results as $db->result):
            
                echo $db->result['Name']  . '<br />';
            
            endforeach;
    
        else: echo "Kayıt Bulunamadı"; endif;
    */
    *?>
    Veritabanı bağlantı methodlarınıda istiyen eklesin ben farklı sayfalarda tuttuğum için gerek görmiyorum.
  • 26-09-2010, 21:17:24
    #2
    Üyeliği durduruldu
    elinize sağlık
  • 26-09-2010, 22:28:25
    #3
    Eposta Aktivasyonu Gerekmekte
    Teşekkürler hocam.
  • 27-09-2010, 13:50:48
    #4
    Eposta Aktivasyonu Gerekmekte
    teşekkürler soru dışında bi paylaşım görmek güzel
  • 01-10-2010, 22:38:56
    #5
    Bu kodları nasıl kullanacağız , örnek olarak.yaptığımız php sayfaya mı ekleyeceğiz.
  • 01-10-2010, 22:46:11
    #6
    Ben de veritabanı bağlantı sınıfını ekleyeyim o halde:

    dbconn.class.php
    <?php
    class Veritabani {
    $Sunucu = "";
    $Kullanici = "";
    $Sifre = "";
    $Veritabani = "";
    
    function Baglan() {
    $conn = mysql_query($this->$Sunucu, $this->Kullanici, $this->Sifre);
    if (!$conn) { echo "MySQLe baglanti kurulamadi!"; }
    $seldb = mysql_select_db($this->Veritabani, $conn);
    if (!$seldb) { echo "Veritabani bulunamadi!"; }
    }
    }
    ?>
    Kullanımı:

    baglan.php
    <?php
    require "dbconn.class.php";
    
    $db = new Veritabani();
    
    $db->Sunucu = "localhost";
    $db->Kullanici = "root";
    $db->Sifre = "sifremiz";
    $db->Veritabani = "veritabanimizin_ismi";
    
    $db->Baglan();
    ?>
    Elinize sağlık..
  • 01-10-2010, 22:58:36
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Öncelikle elinize sağlık. Bu yazağımı OOP hakkında fazla bir bilgim olmadan yazıyorum. Yanlışım var ise düzeltin lütfen. Sınıfın başında, sınıfa girilecek argümanları belirmişsiniz var $degisken = null; diye. Ancak siz bunları null değeriyle atasanızda atamasanızda null tani "tamınlanmamış" anlamı katmıyor mu? Bu kullanımınız yerine var $connect, $sql, $query, $case, $count, $row, $result; şeklinde yazılamaz mı?
  • 01-10-2010, 23:04:17
    #8
    Bazen sorun cikarabiliyor
  • 02-10-2010, 01:49:08
    #9
    by_grafitus adlı üyeden alıntı: mesajı görüntüle
    Öncelikle elinize sağlık. Bu yazağımı OOP hakkında fazla bir bilgim olmadan yazıyorum. Yanlışım var ise düzeltin lütfen. Sınıfın başında, sınıfa girilecek argümanları belirmişsiniz var $degisken = null; diye. Ancak siz bunları null değeriyle atasanızda atamasanızda null tani "tamınlanmamış" anlamı katmıyor mu? Bu kullanımınız yerine var $connect, $sql, $query, $case, $count, $row, $result; şeklinde yazılamaz mı?
    php 4 te

    var $degisken diye tanimlamak gerekiyor.

    php5 te ise public veya ( baska tur degisken sadece class ici kullanilacaksa private gibi) $degisken seklinde tanimlamak gerekiyor ki sorun olmasin