Bindings Paneli
Veri bağlantılarının yönetildiği panel
Bindings Paneli
Öncelikle File / New menüsü ile "Dynamic Pages" sekmesinden yeni bir PHP dokümanı oluşturuyor ve bunu sitemiz altında uygun bir yere kaydediyoruz.
Ardından eğer açık değilse Window / Bindings menüsü ile "Bindings" panelini aktif hale getiriyoruz.
"Bindings" paneli işlev itibari ile veri bağlantılarımızın yönetildiği panel oluyor. Bu verilerin kaynakları sadece veritabanı değil; çerez (cookie), oturum (session), form verisi (form variable) ya da adres satırı parametresi (URL variable) gibi diğer ortam kaynakları da olabilmekte.
Şimdi işe koyulabiliriz. Sayfada uygun gördüğünüz bir yere Makaleler yazarak bunu H1 (Heading 1) olarak biçimlendiriyoruz. Tabi siz mutlaka böyle yapacaksınız diye bir kaide yok ama sayfada neyin nerde olduğunu anlayabilmek adına ben basit bir sayfa düzeni ve CSS tanımlamaları yaratacağım. Siz çalışmalarınızda istediğiniz tasarımı yaparak aynı işlemleri gerçekleştirebilirsiniz.
Biz burada çok sayıda kayıttan sadece belli bir sayıdakini sayfaya nasıl bastıracağımızı ve bunları listeleteceğimizi göreceğiz. Şimdi veritabanından gelen kayıtların sayfanın neresinde olacağına karar verip buraya bir DIV ekliyoruz. Bu DIV için önceden tanımladığım bir stili de bu DIV'e uygulayarak her bir kayıt için bir konteynır niteliği taşıyan bir kutuyu biçimlendirerek sayfaya ekliyoruz.
Bu işlemin görsel kısmı idi şimdi veritabanı işlemlerine geçebiliriz. Bindings paneline dönüp + işaretine tıklayarak açılan menüden "Recordset (Query)" seçeneğine tıklayarak kayıt dizisi tanımlama iletişim penceresini açıyoruz.
Name: Kayıt dizimiz için açıklayıcı ve bizim için anlamı olan bir isim giriyoruz.
Connection: Önceden tanımlamış olduğumuz veritabanı bağlantısını seçiyoruz. Eğer başka bir veritabanına bağlanmak istersek "Define..." düğmesine tıklayarak yeni bir bağlantı yaratabiliriz.
Table: Seçilen ilgili bağlantının sahip olduğu veri tablolarından bizi ilgilendiren tabloyu seçiyoruz.
Columns: Seçilen tablonun veri alanları (fields). Buradan "All" dediğimizde bütün veritabanı alanları çekilecektir ."Selected" da ise sadece seçtiğimiz alanlar çekilecektir.
Filter: Tabloda yer alan kayıtları belli bir kritere göre filtrelemek ve sadece istediğimiz nitelikteki kayıtları çektirmek için bu kısmı kullanıyoruz.
Sort: Kayıtlarımızın sıralanma türünü bu kısım belirtiyor.Buradan "tarih" alanını seçip "Descending" dediğimizde kayıtlarımızı tarih alanına göre azalan sıra ile sıralatmış oluyoruz. Eğer "Ascending" seçeneğini seçseydik artan sıra ile çekmiş olacaktır.
İlgili ayarlarımızı yaptıktan sonra "Test" diyerek bu sorgu sonucu hangi kayıtların çektirileceğini önceden görüp kriterlerde değişiklik yapma şansına da sahibiz.
Eğer buradaki kriter işlemleri veya sıralatma seçenekleri size yeterli gelmediyse daha gelişmiş sorgular düzenleyebileceğiniz gelişmiş sorgu ekranına geçmek için "Advanced" düğmesine tıklayabilirsiniz.
Tekrar standart sorgu ekranına dönmek için "Simple" düğmesine tıklayabilirsiniz. Kayıt dizimiz ile ilgili ayarları yaptıktan sonra "OK" diyerek işlemi tamamlayabiliriz.
Şimdi Bindings paneline tekrar baktığımızda bu panelin biraz önce yarattığımız kayıt dizisinin özellikleri şeklinde yeniden biçimlendiğini göreceğiz. İşler bu aşamadan sonra oldukça kolaylaşıyor. Zira işin geri kalan kısmı sürükle bırak mantığı üzerine kurulu diyebiliriz.
Şimdi "baslik" alanına tıklayıp sayfaya önceden eklediğimiz DIV içerisine sürüklüyoruz sonra bir kez ENTER'a basıp yeni bir paragraf yaratıyoruz ve buraya da "ozet" alanını sürükleyip bırakıyoruz. Aynı şekilde "tarih" alanını da uygun bir yere sürükleyip bıraktıktan sonra sayfanın DW içerisindeki son hali resimdeki gibi görünecektir. Gördüğünüz gibi açık mavi arka fon ile belirtilen kısımlar dinamik metin olarak tabir edilen veritabanından gelen bilgilerin yerini göstermektedir. Yazım şekli de {yazdir.baslik} şeklinde olduğu dikkatini çekmiştir. Burada "yazdir" kayıt dizimizin adını "baslik" ise veritabanı alan adını belirtmekte. Böylece sayfadaki çoklu kayıt dizileri ile yapılan çalışmalarda hangi alanın hangi kayıt dizisinden geldiğini görebilmeniz daha kolay olacaktır.
Başlığın vurgulu olması açısından bir başlık stili ile biçimlendirebilir ya da en azından kalın hale getirebiliriz.
Yeri gelmişken belirtelim: MySQL 4.1.1 sürümünden itibaren "collation" olarak adlandırılan veritabanında depolanan verinin dil kodlama bilgisini içeren bir özelliği de beraberinde getirdi. Bu nedenle veritabanı bilgi çekme işlemlerinde MySQL manipülasyonlarından önce hangi karakter kodlamasının kullanılacağı MySQL'e bildirilmesi gerekmektedir. Benim bu makaleyi yazdığım dönemde DW'ın henüz böyle bir "collation" seçme desteği yoktu. Bu nedenle DW'ın yazdığı kodlara elimizle ufak bir müdahalede bulunarak sorunu çözeceğiz. DW'da kod görünümüne geçiyoruz ve sayfanın en üstlerinde yer alması gereken şu kod bloğunu buluyoruz;
<?php
require_once('Connections/baglantim.php'); ?>
Burada geçen "baglantim.php" kısmı sizin bağlantınıza verdiğiniz isme göre değişecektir. Şimdi bu kod bloğunun altına şu bloğu ekliyoruz:
<?php
mysql_query("SET NAMES latin5");
?>
Makalede kullandığımız örnek veritabanın collation ayarı "latin5_turkish _ci" olarak ayarlandığından biz burada "latin5" collation gurubunu kullanacağız. Siz çalıştığınız projelerde bunu ihtiyacınıza göre ayarlayabilirsiniz. Bu aşamadan sonra sayfalarımızda Türkçe karakter sorunu kalmayacaktır.
Veritabanımızda kayıt olmadığı durumlarda bu kayıt dizisi doğal olarak hiç kayıt döndüremeyecek ve şuanda herhangi bir kontrol eklemediğimiz için aynı şekilde kayıt bilgilerini sayfaya yazdırmaya çalışacaktır. Buda boş bir sayfa ve / ve ya hata mesajlarının çıkmasına sebep olacaktır. Bunu engellemek için veritabanında hiç kayıt yoksa ekrana "Hiç kayıt bulunamadı" tarzında bir şeyler yazdırmak ve kayıtların gösterildiği kısımların sadece eğer kayıt dizisi dolu iken gösterilmesini sağlamak en mantıklısı olacaktır. Bunun için;
Kayıt bilgilerinin sayfaya yazdırıldığı alanın dışında bir yere yeni bir paragraf açıp "Hiç kayıt bulunamadı" yazıyoruz. Bunu seçip Server Behaviors panelinden Show Region / Show If Recordset Is Empty seçeneğini seçiyoruz ve bunun sadece kayıt dizisi boşken görüntülenmesini sağlıyoruz.
Aynı şekilde kayıt bilgilerinin yazdırıldığı alanı seçip Server Behaviors panelinden Show Region / Show If Recordset Is Not Empty seçeneği ile kayıt dizisi boş değilken gösterilmesini sağlıyoruz. Bu aşamada seçim işlemleri biraz başınızı ağrıtabilir. Bu nedenle kayıt dizisi boş iken gösterilecek kısımlar ile dolu iken gösterilecek kısımları ayrı ayrı birer DIV içerisine yerleştirmek bu seçim işlemini önemli ölçüde kolaylaştıracaktır.
Kaynak : http://www.dw.gen.tr/?module=articles&page=detail&id=235&part=1