php’de upload yapmak istediğimizde $_FILES globalini kullanırız. bu dizinişn her bir elemanı
“key=>Array()  ” tipindedir.

key <input type=”file” name=”key”  burda verdiğimiz name değerine eşitti. buna karşılık gelen dizinin elemanları da
[name] => Dosyanın Gerçek Adı 
[type] =>  Dosya headerindan okunan tür (mime-type)
[tmp_name] =>  Dosyanın Template klasoründeki adı
[error] => Hata Kodu
[size] =>  Dosyanın Boyutu.

error elemanının değerlerinin anlamı
0 => hata yok dosya başarıyla temp klasorüne upload oldu
[1] => dosya  boyutu  php.ini dosyasındaki upload_max_filesize değerinden büyük.
[2] => dosya boyutu html formdaki MAX_FILE_SIZE değerinden büyük
[3] => dosya kısmen upload edildi ( upload b aşarılı fakat temp oluşturulken kırpma oluşmuştur.)
[4] => dosya seçilmedi
[6] => temp klasörü yok ya da yazma izni yok
[7] => dosya diske yazılamadı.
[8] => upload bir  kutuphane tarafından durulduruldu.

Grid classımı dünyanın hizmetine açtım  hadi hayırlı olsıun daha nice classlara (:

http://www.phpclasses.org/browse/package/5730.html

php – sql ile en sık yapılan işlemlerden biri de sql den veriyi alıp tabloya dökmektir. bunu artık bir ızdırap gbi görüp kendi kodlarını copy paste yapıp sonra da aynı kodlar arasında kaybolanımız bile var ben de bir zamalar öyleydim taaa ki sınıfımı yazana kadar (:

sınıfın özellikleri .

sql bağlantısı : (mysql, firebird, oracle);
query kullanım alanına göre nesne ya da source olarak dönebilme özelliği.
(array,assoc,object,row) yine tercihinize göre fetch metodları
hata gösterimi.
debug Özelliği. (Her sorugdan sonra sorgulanan cümle ve obje oluşturulduğundan bu yana geçen mikrosaniye)
kolay insert : $EklenecekDizi['alan_adi']=>’Değeri’; gibi dizi verip db ye atabilme.
kolay update : insert ozelliğinde yine dizi vererek update cümlesi hazırlayıp sorgulayablen bir özellik
obje oluşturulduğundan ekrana yazdırılana kadar çalıştırılan sql sayısını alabilme.
db bağlantı clonlayabilme : objeler arası veri alışverişinde kolaylık ve 1den fazla data ile çalışabilme.
insertten sonra id alma : mysql_insert_id fonksiyonunun sınıftaki yeri
—-
ve bu sınıfı yazmamdaki amacım olan grid();

verdiğiniz mysql data source nesnesini tabloya dönüştürme özelliğine sahip olan bu fonksiyona yardımcı bi kaç fonksiyonumuz da var.

örnek bir uygulama yapalım:

0
1
2
3
4
5
6
 $db = new D3Sql;
  $db->baglan('localhost','root','12345');   // mysql bağlantısını sağladık.
  $db->dbsec('deneme_veritabani');  // Vertabanı seçtik
 
  $db->sql('select id,adi,adresi FROM uyeler');  //Sorgumuzu Yazdık
 
   echo  $db->grid();  // Tabloyu ekrana yazdırdık.

çıktısı şuna benzer bişey olur

—- ————– ——————-
id            adi             adresi
—– ————– ——————
1          Tufan          tufyta.com
2         turkPHP     turk-php.com

 

peki biz her zaman böyle basit tablolar mı yapıcaz  ?    şimdi gelelim  bu tabloyu özelleştirmeye

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$db->tablo_ozellikleri=array(
'width'=>'600',
'cellspacing'=>'0',
'cellpadding'=>'0'
);   
 // bunun gibi istediğimiz kadar özelliği ekleyebilirz.  style="" gibi height gibi hepsni 
 
 
 
 $db->sutun_template();//  gridde en con işinize yarayacak olan fonksiyondur
 
// örneğin  'adresi'  Sutunu için   link verdirelim.$db->sutun_template('adresi','{$adresi}');
 
//artık adresi sütunumuz   yukardaki görüntüye göre yeniden inşa edilir ve her satır için bu uygulanır.

daha bir coooook özelliğini de kullandıkça yararlı gördükçe anlatıırım. kalın sağlıcakla

turk-php forumlarındaki bi istekten sonra  bana da lazım olur diye yazdığım bi sınıf   code lighter kullanma adına da olsa işine yarayan olabilir  işte sınıfımız ve bir örnek kullanım

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
     class txtSayac{
  /**
  * txt Dosya Adresi
  * 
  * @var mixed
  */
  var $txtDosya;
 
  var $sayac=Array();
  protected $txtLines=Array();
  protected $txtHandler;
 
  /**
  * Kurucu Fonksiyon 
  *  
  * @param mixed $txtAdres
  * @return txtSayac
  */
   function txtSayac($txtAdres){
 
       if(is_file($txtAdres)) {
         $this->txtDosya=$txtAdres;
         $this->txtLines=file($txtAdres);
 
       }else {
           $this->hata($txtAdres.' Geçerli Bir Dosya Değil');
       }
 
    }
    /**
    * Sayacları Kullanmadan önce bu fonksiyon çalışıtırıp sayaçlar diziye doldurulmalı
    */
    function tumunuGetir(){
        foreach($this->txtLines As $Line){
          $parcalar=explode('=',trim($Line));
          $this->sayac[trim($parcalar[0])]=trim($parcalar[1]);  
        }
        return $this;
    }
    /**
    * sayacın adını girerek değerini almanıza yarar
    * 
    * @param mixed $sayacName
    * @return bool
    */
    function sayac($sayacName){
        return array_key_exists($sayacName,$this->sayac) ? $this->sayac[$sayacName] : $this->hata($sayacName.' Adında Bir Sayaç Bulunamadı');
    }
    /**
    * sayac adını ve artış miktarını girerek sayac değerini arttırabilirsiniz.
    * 
    * @param mixed $sayacName
    * @param mixed $artis
    */
    function sayacArttir($sayacName,$artis=1){
         $this->sayac[$sayacName]=$this->sayac[$sayacName]+$artis;
         $this->sayacDepola();
         return $this;
    }
    /**
    * isim vererek yeni sayaç eklemenize yarayan fonksiyon
    * 
    * @param mixed $sayacName
    * @param mixed $deger
    */
    function sayacEkle($sayacName,$deger=0){
        $this->sayac[$sayacName]=$deger;
        $this->sayacDepola();
        return $this;
    }
    /**
    * dışardan erişilemeyen sayaclarla oynandıktan sonra tümünü kaydeden fonksiyon
    * 
    */
    protected function sayacDepola(){
             if (count($this->sayac)>0){
             $file=fopen($this->txtDosya,'w+');
             foreach($this->sayac As $sName=>$sValue){
               fwrite($file,$sName.'='.$sValue."\n");  
             }
             fclose($file);
         }else {
             return $this->hata('Hiç Sayaç Bulunamadı');
         }
         return $this; 
    }
    /**
    * yine erişilemeyen hata esnasında çalışan fonksiyon
    * 
    * @param mixed $aciklama
    * @return crash
    */
    protected function hata($aciklama){
        die($aciklama);
    }
    /**
    * Yıkıcı Fonksiyon aynı zamanda sayaclarla oynandıktan sonra depolar.
    * extends sınıflara ihtiyac duyarsanız bu fonksiyon işinize yarayabilir.
    */
   function __destruct() {
       $this->sayacDepola();
   }
 
}
 
// Örnek Kullanım
 $S=new txtSayac('sayac.txt');
 $S->tumunuGetir()->sayacEkle('sayac1')->sayacArttir('sayac1',1)->sayacEkle('sayac2');
 $S->sayacArttir('sayac1',1);
 echo $S->sayac('sayac1');  
 $S->sayacArttir('sayac1',1);  
 $S->sayacArttir('sayac2',5);  
 echo $S->sayac('sayac1');