Basit PDO Sınıfı ile Veritabanı İşlemlerini Kolaylaştırmak

15 Ağustos 2016 Pazartesi günü PHP başlığında

Basit PDO Sınıfı ile Veritabanı İşlemlerini Kolaylaştırmak

Neden böyle bir şeye ihtiyaç var diye düşünebilirsiniz belki. Ama acemi ve yeni öğrenen arkadaşlar için böyle bir şey paylaşmak gerekiyor. PDO çok fazla kafa karıştıracak bir şey değil aslında ama öğrenme sürecinde sıkıntı çıkarabiliyor. Özellikle de mysql_connect() fonksiyonundan geçişlerde sancılı olabiliyor. Aşağıda yazdığım sınıf oldukça basit bir kullanıma sahip.

Devamını okuyun »
PHP ve Sabit Tanımlamalar

27 Haziran 2016 Pazartesi günü PHP başlığında

PHP ve Sabit Tanımlamalar

PHP’de değişkenlerden başka kullanabileceğimiz bir de sabitler vardır. Sabitler, tanımlandıktan sonra değiştirilemezler. Birkaç örnek verelim.

define('SABIT', 'foo');
var_dump(SABIT);

Sabitler, programlama dillerinde genellikle büyük harflerle tanımlanırlar. Bu genel bir gelenektir, daha farklı biçimlerde de kullanılabilir elbette. Sabitleri bir kere tanımladıktan sonra başka bir yerde değiştiremiyorsunuz ve yeniden tanımlayamıyorsunuz. Yani şöyle:

Devamını okuyun »

1 Mayıs 2016 Pazar günü JavaScript başlığında

jQuery ile Dinamik Olarak Oluşturulan Elemente Erişmek

jQuery ile DOM'da bulunan elementlere $('.element') şeklinde kullanarak erişebiliyoruz. Fakat dinamik olarak oluşturulan elementlere erişmek için farklı bir durum söz konusu oluyor. Bunun için şu kullanım yeterli geliyor.

$('body').on('click', '.element', function(){
    console.log($(this).html())
})

Kolay gelsin.

PDO'nun En Kolay Hali

9 Şubat 2016 Salı günü PHP başlığında

PDO'nun En Kolay Hali

Genelde, mysql fonksiyonundan PDO’ya geçişte biraz zorlanılır. Bu yazıda, PHP ile veri çekerken ve eklerken en çok kullandığımız yöntemlerin PDO karşılığını yazacağım.

PDO ile MySQL Veritabanına Bağlanmak

$pdo = new PDO('mysql:host=localhost;dbname=veritabani;charset=utf8', 'kullaniciAdi', 'sifre');

Bu satır, mysql_connect() satırıyla aynı işi hatta daha fazlasını yapar. Hem belirttiğimiz veritabanına bağlanır hem de karakter setini belirler. Böylece türkçe karakter sıkıntısı yaşamayız.

Devamını okuyun »

15 Eylül 2015 Salı günü PHP başlığında

SQL’de Sonraki ve Önceki Satırdaki Veriyi Getirmek

Bir gönderi/blog sistemi düşünelim. Hatta WordPress’ten örnekleyebiliriz. Bazı bloglarda, bir gönderiye girdiğimizde sonraki ve önceki gönderiler için bağlantı olduğunu görürüz. Bunlar için ayrı veriler çekmemiz gerekiyor. Örnek verirken bir model dosyasında kod yazıyormuş gibi örnekleyeceğim, SQL kodundan yola çıkarak sizde geliştirebilirsiniz.

class Post extends Model
{
  public function nextPost($id)
  {
    $sql = 'SELECT * FROM posts WHERE id > ? ORDER BY id ASC LIMIT 1';
    $sth = $this->db->prepare($sql);
    $sth->execute(array($id));
    return $sth->fetch();
  }

  public function prevPost($id)
  {
    $sql = 'SELECT * FROM posts WHERE id < ? ORDER BY id DESC LIMIT 1';
    $sth = $this->db->prepare($sql);
    $sth->execute(array($id));
    return $sth->fetch();
  }
}

12 Ağustos 2015 Çarşamba günü HTML & CSS başlığında

text-transform: uppercase ve Türkçe Karakter

CSS'de text-transform: uppercase özelliğini kullanmak istediğimizde, bazı tarayıcılarda, bazen türkçe karakterleri büyük harfe çevirmiyor. Bunun çözümü, HTML'de parametresini kullanmak.

<!DOCTYPE html>
<html lang="tr">
...

Yaptığımız vakit türkçe karakterler yani i harfi I olarak değil, İ olarak büyüyecektir. Aynı zamanda bu özelliği diğer etiketlerde de kullanabiliyoruz. Örn.

<h1 lang="tr" style="text-transform: uppercase">
Türkçe Karakter Denemesi işüğçö
</h1>

Kolay gelsin.

2 Ağustos 2015 Pazar günü Diğer başlığında

SQL’de Gün İçindeki/Bugüne Ait Kayıtları Listelemek

SQL’de gün içindeki kayıtları listelemek için şöyle bir sorgu gerekiyor:

SELECT * FROM kayitlar WHERE DATE(tarih) = CURDATE();

Bu sorgu, o gün içindeki kayıtları listeliyor. Yani bugün ayın 5’i ise, 5’inde girilen kayıtları gösteriyor.

Bir diğer kullanım ise, son bir günlük kayıtları göstermek. Sorguyu inceleyelim:

SELECT * FROM kayitlar WHERE tarih > DATE_SUB(CURDATE(), INTERVAL 1 DAY);

Bu sorguda son bir gün, yani 24 saatlik kayıtları listeliyor. 1 DAY yazan yeri 1 WEEK yaparak bir haftalık kayıtları, 1 MONTH yazarak son bir aylık kayıtları alabiliyoruz.

Veritabanındaki Tablonun Varlığını Kontrol Etmek

19 Temmuz 2015 Pazar günü PHP başlığında

Veritabanındaki Tablonun Varlığını Kontrol Etmek

PHP’de PDO ile çalışırken bir tablonun var olup olmadığını kontrol etmek için aşağıdaki yöntem kullanılabilir:

public function checkTable()
{
  try {
    return $this->fetchRow('SELECT * FROM posta');
  } catch(\Exception $e) {
    return false;
    // Veya $this->exec('CREATE TABLE IF NOT EXISTS posta ...');
  }
}

Bir kurulum aşamasında, veritabanındaki tabloları yapılandırma sırasında işe yarayabilir.

Sublime Text Klasör/Dosya Listesi Problemi

9 Mayıs 2015 Cumartesi günü Diğer başlığında

Sublime Text Klasör/Dosya Listesi Problemi

Mac üzerinde Sublime Text 2 metin/kod editörünü kullanıyorum. Öncedir çok rastladığım bir problem vardı ve şu an devamlı aynı sıkıntıyla karşılaşıyorum. Sublime Text, dosya yöneticisi kısmında yeni oluşturduğum dosyaları listeye dahil etmiyor yani güncellemiyor. Biraz çözüm aradım ama pek kayda değer bir şey çıkmadı.

Geçici bir çözüm olarak klavye kısayolu atayarak dosya listesini yenilemesini sağladım. Sublime Text 2 -> Preferences -> Key Bindings - User yolundan kısyolların bulunduğu dosyayı açıp kısayol tanımladım.

[
    {"keys": ["command+shift+r"], "command": "refresh_folder_list"}
]

Ben Mac kullandığım için CMD Shift ve R kombinasyonu ile yenilemeyi tercih ettim. Windows/Linux kullanıcıları Ctrl+Shift+R ya da kendilerine uygun bir kısayol belirleyebilirler.

Kolay gelsin.

12 Nisan 2015 Pazar günü JavaScript başlığında

Girdi Değerini Büyük Harfe Çevirmek

Merhaba, JavaScript ile girdi değerini büyük harfe çevirme ihtiyacı duydum. Daha önceden de karşılaşmıştım. Bu sefer Angular JS ile gerekti. Ama ben hepsini burada yazacağım.

<input type="text" onKeyup="this.value = this.value.replace('i','İ').toUpperCase()">

Yukarıda özellikle i harfini İ harfine değiştirdim (replace). Çünkü ingilizce karakter olan i, değiştirmediğimde I harfine çevriliyor.

jQuery ile

$(function() {
    $('input').keyup(function() {
        this.value = this.value.replace('i','İ').toUpperCase();
    });
});

Güncelleme: Yazıldıktan sonra değil de, yazıldığı anda büyük harf yazılması için şu da uygundur:

$('.buyukHarf').on('input', function(evt) {
  $(this).val(function (_, val) {
    return val.replace('i', 'İ').toUpperCase();
  });
});

AngularJS ile

$scope.girdi = $scope.girdi.replace("i", "İ").toUpperCase();

Kolay gelsin.