├── OOP ├── arayuz.php ├── arayuz2.php ├── gorunurluk.php ├── kalitim.php ├── kalitimornek.php ├── kurucuyikici.php ├── namespace │ └── uygulama │ │ ├── controller │ │ └── bildirimler.php │ │ ├── helper │ │ └── bildirimler.php │ │ └── index.php ├── sabit.php ├── sinif.php ├── soyutlama.php ├── staticdeyimi.php └── staticornek.php ├── PDO ├── baglan.php ├── formInsert.php ├── formUpdate.php ├── guncelle.php ├── header.php ├── homepage.php ├── index.php ├── insert.php ├── kategori.php ├── kategori_ekle.php ├── kategoriler.php ├── oku.php └── sil.php └── README.md /OOP/arayuz.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /OOP/arayuz2.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /OOP/gorunurluk.php: -------------------------------------------------------------------------------- 1 | b; //private özelliği public metotta geriye döndürebilirim 15 | } 16 | 17 | protected $c = 'c'; 18 | //korumalı, aynı private gibi dışarıdan erişilemez sınıf içinde erişilebilir, miras aldığımız sınıfta da kullanabiliriz 19 | 20 | private function geriDonA() //private func 21 | { 22 | return $this->a; 23 | } 24 | 25 | protected function geriDonC() //protected func 26 | { 27 | return $this->c; 28 | } 29 | 30 | } 31 | 32 | $test = new Test; 33 | 34 | echo $test->a; //bu özelliği rahatça ekrana basabildim 35 | 36 | echo $test->b; //bu özelliği ekrana bastırmak istediğimde hata ile karşılaşıyorum 37 | 38 | echo $test->geriDonB(); 39 | 40 | echo $test->c; //hata 41 | 42 | echo $test->geriDonA(); //hata 43 | 44 | echo $test->geriDonC(); //hata 45 | 46 | ?> -------------------------------------------------------------------------------- /OOP/kalitim.php: -------------------------------------------------------------------------------- 1 | isim; 25 | } 26 | 27 | public function soyIsimDon() 28 | { 29 | return $this->soyisim; 30 | } 31 | 32 | } 33 | 34 | $test = new Test; 35 | echo $test->selam(); 36 | 37 | echo "
"; 38 | 39 | $test2 = new Test2; 40 | echo $test2->selam()." ".$test2->arkadaslar(); 41 | 42 | echo "
"; 43 | echo $test2->isimDon()." ".$test2->soyIsimDon(); 44 | 45 | ?> -------------------------------------------------------------------------------- /OOP/kalitimornek.php: -------------------------------------------------------------------------------- 1 | adsoyad = $adsoyad; 12 | } 13 | 14 | public function maas($maas) 15 | { 16 | //sınıfın içerisinde maas dışarıdan gelen maas değerine eşit olsun 17 | $this->maas = $maas; 18 | } 19 | 20 | public function senelikMaas() 21 | { 22 | return ($this->maas*12).'₺'; 23 | } 24 | } 25 | 26 | class Muhasebe extends Calisan{} 27 | 28 | class IT extends Calisan{ 29 | public function senelikMaas() 30 | { 31 | return 'IT Çalışanı: '.$this->adsoyad.' senelik maaş olarak '.parent::senelikMaas(); 32 | } 33 | } 34 | 35 | $muhasabeci = new Muhasebe; 36 | 37 | $muhasabeci->adsoyad = 'ASDAS DSASD'; 38 | $muhasabeci->maas = 4200; 39 | echo "Muhasabeci Senelik Maaşı: ".$muhasabeci->senelikMaas(); 40 | 41 | echo "
"; 42 | 43 | $it = new IT; 44 | $it->adsoyad = 'FFJS SFLP'; 45 | $it->maas= 8500; 46 | echo $it->senelikMaas(); 47 | 48 | ?> -------------------------------------------------------------------------------- /OOP/kurucuyikici.php: -------------------------------------------------------------------------------- 1 | degisken = $a; 11 | //bir sınıf başlatıldığında otomatik olarak çağrılacak fonksiyondur 12 | echo $this->degisken.PHP_EOL; 13 | } 14 | 15 | public function bas() 16 | { 17 | echo 'ekrana yazı bastım'.PHP_EOL; 18 | } 19 | 20 | //yıkıcı metot 21 | public function __destruct() 22 | { 23 | //bir sınıfın çalışması bittiğinde çalışacak son metottur 24 | echo 'yıkıcı metot çalıştı'.PHP_EOL; 25 | } 26 | 27 | } 28 | 29 | $nesne = new YapYik('Kurucu metot çalıştı'); 30 | $nesne->bas(); 31 | 32 | ?> -------------------------------------------------------------------------------- /OOP/namespace/uygulama/controller/bildirimler.php: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /OOP/namespace/uygulama/helper/bildirimler.php: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /OOP/namespace/uygulama/index.php: -------------------------------------------------------------------------------- 1 | '; 13 | 14 | //veya şöyle bir kullanımda yapabilirim 15 | $helperBildirim = new Uygulama\Helper\Bildirimler; 16 | 17 | ?> -------------------------------------------------------------------------------- /OOP/sabit.php: -------------------------------------------------------------------------------- 1 | getDirectory(); 25 | 26 | //veya sınıfı başlatmadan da sabitin değerini alabiliriz 27 | echo "
". File::DIRECTORY; 28 | 29 | 30 | //dizin değerini geri döndürme işlemini Folder sınıfının nesnesi ile yapalım 31 | $folder = new Folder; 32 | echo "
". $folder->getDirectory(); 33 | 34 | ?> -------------------------------------------------------------------------------- /OOP/sinif.php: -------------------------------------------------------------------------------- 1 | ad; 30 | } 31 | function soyadDondur() 32 | { 33 | return $this->soyad; 34 | } 35 | 36 | //fonksiyon içerisinde fonksiyonumuzu döndürmek isteseydik 37 | function yasBas() 38 | { 39 | return $this->kacYasinda(2020,$this::DOGUMTARIHI); 40 | } 41 | 42 | //sabiti geriye döndürmek 43 | function dogumTarihi() 44 | { 45 | return $this::DOGUMTARIHI; 46 | }//veya self kullanabiliriz 47 | function dogumTarihi2() 48 | { 49 | return self::DOGUMTARIHI; 50 | } 51 | } 52 | 53 | //sınıftan nesne olusturma 54 | $uye = new Uye(); 55 | //veya 56 | $uye2 = new Uye; 57 | 58 | 59 | //sınıf içerisindeki özelliklere ve metotlara erişmek için -> işareti kullanılır 60 | 61 | //metotlara erişmek ve ekrana yazdırmak için 62 | echo $uye->stringAdDondur() . "
"; 63 | 64 | //özeliğe erişmek ve ekrana yazdırmak 65 | echo $uye->soyad . "
" ; //çıktı Celik 66 | 67 | //sabite erişmek ve ekrana yazdırmak için 68 | echo $uye::DOGUMTARIHI; 69 | 70 | 71 | //uye2 için özelliklere farklı değerler atayalım: 72 | $uye2->ad = 'Farklıİsim'; 73 | $uye2->soyad = 'FarkliSoyad'; 74 | 75 | echo "
"; 76 | echo "
". $uye2->ad; 77 | echo "
". $uye2->soyad; 78 | echo "
". $uye2::DOGUMTARIHI; 79 | 80 | //parametreli metodu çağırmak 81 | echo "
"; 82 | echo "KAÇ YAŞINDALAR?" . "
"; 83 | echo $uye->kacYasinda(2020,$uye::DOGUMTARIHI); 84 | 85 | //özellik ve fonksiyonları geri döndüren fonksiyonları çağırmak 86 | echo "
"; 87 | echo "Birde özellikleri geri döndürerek ad ve soyadı ekrana bastıralım" . "
"; 88 | echo $uye->adDondur() . "
"; 89 | echo $uye->soyadDondur(); 90 | echo "
". "Birde metodu geri döndürerek yaşı ekrana bastıralım" . "
"; 91 | echo $uye->yasBas(); 92 | 93 | //this ve self ile sabit döndüren fonksiyonların ekrana bastırılması 94 | echo $uye->dogumTarihi(); //this kullanıldı 95 | echo $uye->dogumTarihi2(); //self kullanıldı 96 | 97 | //this NESNEYİ REFERANS ALIR , self ise SINIFI REFERANS ALIR 98 | 99 | ?> -------------------------------------------------------------------------------- /OOP/soyutlama.php: -------------------------------------------------------------------------------- 1 | '.$this->title.''; 11 | echo '

'.$this->content.'

'; 12 | } 13 | } 14 | 15 | class SonYorumlar extends Eklenti //soyut sınıftan türedi 16 | { 17 | public function setTitle($title) 18 | { 19 | //özelliğin tanımı metot içinde yapıldı (title) 20 | $this->title = $title; 21 | } 22 | public function setContent($content) 23 | { 24 | //özelliğin tanımı metot içinde yapıldı (content) 25 | $this->content = $content; 26 | } 27 | } 28 | 29 | class SosyalMedya extends Eklenti //soyut sınıftan türedi 30 | { 31 | public function setTitle($title) 32 | { 33 | //özelliğin tanımı metot içinde yapıldı (title) 34 | $this->title = $title; 35 | } 36 | public function setContent($content) 37 | { 38 | //özelliğin tanımı metot içinde yapıldı (content) 39 | $this->content = $content; 40 | } 41 | } 42 | 43 | //SonYorumlar sınıfını başlatıyorum 44 | $sonyorumlar = new SonYorumlar; 45 | //değerleri set edelim 46 | $sonyorumlar->setTitle('Son Yorumlar'); 47 | $sonyorumlar->setContent('Son Yorumlar Burada Gözükecek'); 48 | 49 | //SosyalMedya sınıfını başlatıyorum 50 | $sosyalmedya = new SosyalMedya; 51 | //değerleri set edelim 52 | $sosyalmedya->setTitle('Sosyal Medya'); 53 | $sosyalmedya->setContent('Sosyal Medya Bağlantıları Burada Gözükecek'); 54 | 55 | echo $sonyorumlar->show(); 56 | echo "
"; 57 | echo $sosyalmedya->show(); 58 | 59 | ?> -------------------------------------------------------------------------------- /OOP/staticdeyimi.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /OOP/staticornek.php: -------------------------------------------------------------------------------- 1 | Oku(); 24 | 25 | ?> 26 | 27 | -------------------------------------------------------------------------------- /PDO/baglan.php: -------------------------------------------------------------------------------- 1 | getMessage(); 11 | } 12 | ?> -------------------------------------------------------------------------------- /PDO/formInsert.php: -------------------------------------------------------------------------------- 1 | int (PK) , baslik -> varchar , icerik -> text , onay -> int , tarih-> timestamp (current_timestap()) 8 | */ 9 | 10 | //kategoriler için 11 | $sorgu = $db -> prepare('SELECT * FROM verikategorisi ORDER BY ad ASC'); //a-z'ye sıralama 12 | $sorgu -> execute(); 13 | $getir = $sorgu -> fetchAll(PDO::FETCH_ASSOC); 14 | 15 | //form gönderilmiş. 16 | if (isset($_POST['submit'])) 17 | { 18 | $baslik = isset($_POST['baslik']) ? $_POST['baslik'] : null; 19 | $icerik = isset($_POST['icerik']) ? $_POST['icerik'] : null; 20 | $onay = isset($_POST['onay']) ? $_POST['onay'] : 0; 21 | //yeni eklendi: 22 | $kategori_id = isset($_POST['kategori_id']) ? $_POST['kategori_id'] : null; 23 | 24 | if (!$baslik) 25 | { 26 | echo "Başlık ekleyin"; 27 | }else if(!$icerik) 28 | { 29 | echo "İçerik ekleyin"; 30 | }else if(!$kategori_id) 31 | { 32 | echo "Kategori seçin!"; 33 | }else 34 | { 35 | //veriler tablosuna ekleme işlemi 36 | $sorgu = $db->prepare('INSERT INTO veriler SET 37 | baslik = ?, 38 | icerik = ?, 39 | onay = ?, 40 | kategori_id = ?'); 41 | 42 | //baslik,icerik ve onayı işlem dizisine koyuyorum. 43 | $ekle = $sorgu -> execute([ 44 | $baslik, 45 | $icerik, 46 | $onay, 47 | $kategori_id 48 | ]); 49 | 50 | //eğer ekleme işlemi başarılıysa 51 | if ($ekle) 52 | { 53 | //yönlendirme işlemi yapıyorum. 54 | header('Location:index.php'); 55 | } else { 56 | $hata = $sorgu -> errorInfo(); 57 | echo "MySQL Hatası: ".$hata[2]; 58 | } 59 | 60 | } 61 | 62 | } 63 | ?> 64 | 65 |
66 | Başlık:
67 |
68 | 70 | İçerik:
71 |
72 | 73 | Kategori:
74 | 80 | 81 |
82 | 83 | Onay:
84 |
88 | 89 |
90 | 91 |
92 | -------------------------------------------------------------------------------- /PDO/formUpdate.php: -------------------------------------------------------------------------------- 1 | prepare('SELECT * FROM verikategorisi ORDER BY ad ASC'); //a-z'ye sıralama 5 | $sorgugetir -> execute(); 6 | $getir = $sorgugetir -> fetchAll(PDO::FETCH_ASSOC); 7 | 8 | //eğer gönderilmeye çalışılan id değişkeni yoksa veya boşsa 9 | if (!isset($_GET['id']) ||empty($_GET['id'])) 10 | { 11 | header('Location:index.php'); 12 | exit; 13 | } 14 | 15 | $sorgu = $db -> prepare('SELECT * FROM veriler 16 | WHERE id = ?'); 17 | 18 | //gönderilen id değerini execute et. 19 | $sorgu -> execute([ 20 | $_GET['id'] 21 | ]); 22 | 23 | //tek bir id'yi çekeceğim için fetch() 24 | $veri = $sorgu -> fetch(PDO::FETCH_ASSOC); 25 | 26 | //eğer veri yoksa 27 | if (!$veri) 28 | { 29 | //direk index'e yönlensin. 30 | header('Location:index.php'); 31 | exit; 32 | } 33 | 34 | if (isset($_POST['submit'])) { 35 | { 36 | $baslik = isset($_POST['baslik']) ? $_POST['baslik'] : $veri['baslik']; 37 | $icerik = isset($_POST['icerik']) ? $_POST['icerik'] : $veri['baslik']; 38 | $onay = isset($_POST['onay']) ? $_POST['onay'] : 0; //onay yoksa zaten 0 olsun 39 | //yeni eklendi: 40 | $kategori_id = isset($_POST['kategori_id']) ? $_POST['kategori_id'] : null; 41 | 42 | if (!$baslik) { 43 | echo "Başlık ekleyin"; 44 | } else if (!$icerik) { 45 | echo "İçerik ekleyin"; 46 | }else if (!$kategori_id) 47 | { 48 | echo "Kategori seçin!"; 49 | } else { 50 | //UPDATE Tablo_adi SET kolon1 = değer1 WHERE kolon=değer 51 | 52 | $sorgu = $db->prepare('UPDATE veriler SET 53 | baslik = ?, 54 | icerik = ?, 55 | onay = ?, 56 | kategori_id = ? 57 | WHERE id = ?'); //id'si şu olan... 58 | 59 | //sorgu değişkenimi execute ediyorum ve güncelle değişkenine atıyorum. 60 | $guncelle = $sorgu->execute([ 61 | $baslik, $icerik, $onay,$kategori_id, $veri['id'] 62 | ]); 63 | 64 | //eğer güncelleme başarılıysa 65 | if ($guncelle) { 66 | header('Location:index.php?sayfa=oku&id=' . $veri['id']); 67 | } else { 68 | echo "Güncelleme işlemi başarısız!"; 69 | } 70 | } 71 | } 72 | } 73 | ?> 74 | 75 |
76 | Başlık:
77 |
78 | 80 | İçerik:
81 |
82 | 83 | Kategori:
84 | 90 | 91 |
92 | 93 | Onay:
94 |
98 | 99 | 100 |
101 | -------------------------------------------------------------------------------- /PDO/guncelle.php: -------------------------------------------------------------------------------- 1 | prepare('UPDATE veriler SET 5 | baslik = ?, 6 | icerik = ?, 7 | onay = ? 8 | WHERE id = ?'); //id'si şu olan... 9 | 10 | //sorgu değişkenimi execute ediyorum ve güncelle değişkenine atıyorum. 11 | $guncelle = $sorgu->execute([ 12 | 'yeni başlık','yeni içerik',1,2 13 | ]); 14 | 15 | //eğer güncellendiyse... 16 | if ($guncelle) 17 | { 18 | echo "Güncelleme işlemi başarılı!"; //...yazdır. 19 | }else 20 | { 21 | echo "Güncelleme işlemi başarısız!"; 22 | } 23 | 24 | 25 | ?> -------------------------------------------------------------------------------- /PDO/header.php: -------------------------------------------------------------------------------- 1 | 2 | [Ana Sayfa] 3 | [Kategoriler] 4 | [İçerik Ekle] 5 |
6 | -------------------------------------------------------------------------------- /PDO/homepage.php: -------------------------------------------------------------------------------- 1 |

Veriler - Başlıklar

2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | prepare('SELECT * FROM veriler WHERE id=? '); 21 | $sorgu -> execute([ 22 | 3 23 | ]); //veriler tablosundaki id'si 3 olanı listeler. 24 | $veriler = $sorgu->fetchAll(PDO::FETCH_ASSOC); 25 | */ 26 | 27 | /* 28 | * verikategorisi tablosu eklenmeden önceki hali: 29 | * $veriler = $db->query('SELECT * FROM veriler')->fetchAll(PDO::FETCH_ASSOC); 30 | */ 31 | 32 | //verikategorisi tablosu eklendikten sonraki INNER JOIN'li hali: 33 | //INNER JOIN Tablo_Adi ON Tablo_Adi.id = digerTablo_Adi.id 34 | 35 | $sql = ' SELECT veriler.id,veriler.baslik,verikategorisi.ad as kategori_adi,veriler.onay FROM veriler 36 | INNER JOIN verikategorisi ON verikategorisi.id = veriler.kategori_id'; //sql sorgumu değişkene atadım 37 | 38 | if (isset($_GET['arama'])) //eğer bir arama yapılmışsa 39 | { 40 | //bu ifadeyi de sql ifademe dahil edeceğim: 41 | $sql .= ' WHERE veriler.baslik LIKE "%' . $_GET['arama'] . '%" || veriler.icerik LIKE "%' . $_GET['arama'] . '%" '; 42 | } 43 | 44 | //. operatörü ile ifadeleri birbirine bağlayalım 45 | $sql .= ' ORDER BY veriler.id DESC'; 46 | 47 | 48 | $veriler = $db->query($sql)->fetchAll(PDO::FETCH_ASSOC); //son eklenen verilere göre listele 49 | 50 | ?> 51 | 52 | 53 | 54 | 55 | 73 | 74 |
75 | 76 | 77 | Aradığınız kritere uygun veri bulunamadı! 78 | 79 | 80 | Henüz eklenmiş veri bulunmuyor! 81 | 82 | 83 |
84 | 85 | 86 | -------------------------------------------------------------------------------- /PDO/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /PDO/insert.php: -------------------------------------------------------------------------------- 1 | int (PK) , baslik -> varchar , icerik -> text , onay -> int , tarih-> timestamp (current_timestap()) 9 | */ 10 | 11 | 12 | /* 13 | * Daha güvensiz hali: 14 | * $db->query('INSERT INTO veriler SET baslik="açıklı başlık", icerik = "açıklı içerik", onay = 1'); 15 | * dışarıdan müdahaleye açık. 16 | */ 17 | 18 | //INSERT INTO tablo_adi SET kolon1=değer1 19 | //prepare ile sorgumuzu hazırlıyorum. 20 | $sorgu = $db->prepare('INSERT INTO veriler SET 21 | baslik = ?, 22 | icerik = ?, 23 | onay = ?'); 24 | //sonrasında ekle isimli bir değişkende bu sorguları çalıştıracağım. 25 | $ekle = $sorgu->execute(['deneme başlık','deneme içerik',1]); 26 | 27 | if ($ekle) 28 | { 29 | echo "Verileriniz eklendi!"; 30 | }else 31 | { 32 | //eğer başarısız olursa errorInfo() çağrılacak bu bize bir dizi döndürecek ve print_r ile onu görebileceğiz. 33 | print_r($sorgu->errorInfo()); 34 | //veya 35 | $hata = $sorgu->errorInfo(); 36 | echo "
MySQL hatası: ".$hata[2]; 37 | } 38 | 39 | ?> -------------------------------------------------------------------------------- /PDO/kategori.php: -------------------------------------------------------------------------------- 1 | prepare('SELECT * FROM verikategorisi WHERE id = ? '); 12 | $sorgu -> execute([ 13 | $_GET['id'] 14 | ]); 15 | $kategori = $sorgu -> fetch(PDO::FETCH_ASSOC); //tek id değeri için veri çekeceğim için fetch 16 | 17 | if (!$kategori) //kategori yoksa 18 | { 19 | header('Location:index.php?sayfa=kategoriler'); 20 | exit; 21 | } 22 | { 23 | $sorgu = $db->prepare('SELECT * FROM veriler 24 | WHERE kategori_id = ? 25 | ORDER BY id DESC'); 26 | $sorgu -> execute([ 27 | $_GET['id'] 28 | ]); 29 | $veriler = $sorgu-> fetchAll(PDO::FETCH_ASSOC); 30 | 31 | } 32 | 33 | ?> 34 | 35 | 36 |

Kategorisi

37 |