Walleq's Blog
Ana Sayfa Profilim Arşiv İletişim
.:. Burn Me Alive .:.

Loading



21 Ağustos 2008 Perşembe
Kategori: Yazılım
Yazar : Walleq, 0 yorum var, 274 defa okunmuş.
Etiket : MySQL Veritabani Karakter PHP
    PHP ve MySQL e geçiş sürecim ve bu konulardaki eksikliklerim gün geçtikçe kapanıyor. Ancak sancılı bir dönem olduğu en azından benim için gün gibi ortada. Her yazdığım koddan sonra yada yazmak istediklerim için araştırmaya girişmek beni yavaşlatan başlıca sebeplerden. Fakat ilk kompleks projemi bu şekilde hazırlıyor olmamın çok önemli bir nedeni var. Yıllarca WEB konusunda VB Script ve Access veritabanı ile uğraşmış biri olarak, PHP ve nimetlerinden yararlanmanın tek yolunun bu şekilde kodlama yapmaktan geçiyor olması. Çünkü daha önce PHP ile ilgili her ne kadar bir kitap bitirmiş olsamda, düzey bakımından kesinlikle ihtiyacımı karşılayabilecek seviyede değildi. Dedim ya basit PHP kodlamalarımı belki bu kitap sayesinde yaptım, ancak işin içine daha özgün ve karmaşık yapılar girdiğinde, muhtemelen hiç bir kitap ihtiyaçları karşılayacak yeterliliğe sahip olmuyor.



    Başlıkta anlatmak istediğimi kısaca daha anlaşılabilir biçimde açıklayayım. PHP ve MYSQL ile yapmak istediğim şu, öncelikle elimde bir tablom ve listelemem gereken verilerim var. Listeleme koşulum ise her verinin baş harfinin, alfabetik bir düzen içerisinde web sayfasında görüntülenmesi. Örnek vermek gerekirse, ziyaretçi ’A’ harfine göre listeleme yapmak istediğinde, sonuçlar içerisinde yalnızca ’A’ ile başlayan verinin görüntülenecek olması. Aslında yapmak istediğim şey son derece basit ki, zaten istediğimi bir parçada almış olmama rağmen, işin içine Türkçe karakterle başlayan veriler girdiğinde sonuç beklentilerim ile uyuşmuyordu. Yine örnek verecek olursam, ’İ’ harfine göre bir listeleme yapmak istediğimde, liste içerisinde ’I’ ile başlayan verilerde yer alıyordu. Neyse ki sorunun çözümünü yine kendim buldum. Aslında tüm sıkıntı veritabanında yer alan tabloların kendine has özelliklerinden kaynaklanıyormuş. Prensip olarak tablo karakter setlerini ’utf8’ olarak belirlerim. Collation (Karşılaştırma) değerini ise ön tanımlı olan ’utf8_general_ci’ olarak bırakırdım. İşte hata tam olarak bu noktada başlıyor, Collation özelliğini ön tanımlı olarak bırakmak yerine ’utf8_turkish_ci’ olarak ayarlamamın istediğim sonucu sağladığını gördüm. Ancak belirtmeliyim ki, ’utf8_turkish_ci’ ayarı, uluslararası projelerde neler götürür kestiremiyorum. Bu yüzden sanırım, yabancı dilde hazırladığım sitelerde ’utf8_general_ci’ yada ’utf8_unicode_ci’ ayarlarını kullanmaya devam edeceğim.

Önemli Not: Yalnız bu değişikliği eğer fulltext indeks içerikli tablolarda yapmak isterseniz bazı hatalar ile karşılaşabilirsiniz. Bu yüzden öncelikle fulltext indeksleri kaldırmanızı ve Collation (karşılaştırma) ayarlarını yaptıktan sonra fulltext indeksleri tekrar tanımlamanızı öneriyorum.











Kategoriler
Son Yazılarım
» Taşınabilir ASP Web Server
» Portable VirtualBox 1.6.2
» PHP ile E-Mail Geçerlilik Kontrolü
» MySQL Türkçe Karakter İlk Harf Sıralaması
» Smarty Template Engine Süslü Parantez Sıkıntısı
Etiket Bulutsusu
Son Yorumlar
harun
» Teşekkürler
mavi_patikli
» faydalı bilgi için teşekkürler
dejavu
» Ewet gerçekten de veri tabanı ile uğraşa
Emir Buğra KÖKSALAN
» Kardeş çok teşekkür ederim o kadar aradı
mesut tetikçi
» www.bedavasitemolsun.comPayl
Bağlantılar
» isimler
» ABD de Yaşam
» Ferruh Mavituna Blog
» Osmanlica Türkçe Sözlük
» Kişisel Güncem
» Ergene.NET - Renk Katar
Blog Takip Sistemi

E-Mail İle Blog Takibi :


Coded And Designed By Walleq