Flash ile MySQL Entegrasyonu

 bcakir
 6 Kasım 2011

Merhaba arkadaşlar, ilk önce herkesin Kurban Bayram’nı kutlar iyi bir bayram geçirmenizi dilerim. Bu yazımda Flash ile MySQL entegrasyonu yapmayı anlatacağım. Bir önceki Flash ile Php yazımda veritabanı işlemlerini yapmamıştım. Bu yazımda ise diğerinden farklı olarak veritabanından kayıt alarak uygulama geliştireceğiz. Ayrıca verileri geri göndermede kolaylık sağlayacak bir yöntemi de sizlerle anlatacağım. Uygulamayı çalıştırmak için sql dosyasına ihtiyacınız olacak bundan dolayı da fla dosyasını da içeren bütün betiği yazının sonunda sizlerle paylaşacağım. Uygulamamızı bir önceki makalemin üzerinde değişiklik yaparak geliştireceğim bundan dolayı da ilk önce o yazıyı okumanızı tavsiye ediyorum. Şimdi uygulamamızın Flash kısmını yapmaya başlayalım.

var istek:URLRequest=new URLRequest ("veri.php");
istek.method=URLRequestMethod.POST;

var gonder:URLVariables=new URLVariables();

gonder.komut="veri al";
gonder.id_no="2";
istek.data=gonder;

var yukleyici:URLLoader=new URLLoader (istek);
yukleyici.addEventListener(Event.COMPLETE, yuklendi);
yukleyici.dataFormat=URLLoaderDataFormat.VARIABLES;
yukleyici.load(istek);

function yuklendi (event:Event):void{
	metinKutusuId.text=event.target.data.id_no;
	metinKutusuYazi.text=event.target.data.yazari;
	metinKutusuYazari.text=event.target.data.yazi;
}

Yukarıdaki AS3 kodlarını kullanmadan önce Flash’ı açıp 3 tane Dynamic Text ekleyip, bu text kutularının isimlerini (Instance Name) metinKutusuId, metinKutusuYazarimetinKutusuYazi olarak kaydedin. Daha sonra da yukarıdaki kodları, kod ekranına yapıştırıp uygulamayı Publish edin. Bu işlemle Flash ile işimiz bitmiş oldu. Şimdi Php bölümünü geliştirmeye geçebiliriz.

<?php
//veri.php olarak kaydedin
if($_POST['komut']=='veri al'){
    //veritabanı bağlantısı betiği
    include "baglanti.php";

    //Flash'dan gelen kayıt id değeri
    $id=$_POST['id_no'];

    // Yazilar Tablosundan Kayıt Al
    $sec = mysql_query("Select yazi, yazari From yazilar Where id='{$id}'");
    $goster = mysql_fetch_array($sec);
    extract($goster);

    //veritabanı bağlantısı kapatma
    mysql_close();

    //gönderilme formatına getirmek için
    $sonuc['id_no']=$id;
    $sonuc['yazi']=$yazi;
    $sonuc['yazari']=$yazari;

    //gönderilme formatına getirme
    echo http_build_query($sonuc);
}
?>

Yukarıda gelen id değerine göre veritabanımızdan bilgilerimizi aldık ve http_build_query fonksiyonuyla (sadece diziler için kullanılır) uygun geri gönderilme şekline getirdik. Bu işlem ard arda ekleme ile de yapılabilir ama bu yöntem çok daha pratik. Daha sonra da bu verileri Flash içerisinde uygun text alanlarında kullanıcılara gösterdik. Bütün dosyaların olduğu içeriği buradan indirebilirsiniz. Uygulamamızın içeriğini ve çalışma şeklini anlatarak bir yazımı daha bitirmiş oldum. Faydalı olması ümidiyle.

Not: Bilgisayarınızda Php, MySQL ve Apache kurulu olmalı (wampserver, lampserver vs.), ayrıca Flash dosyası (swf) ile, Php dosyaları aynı dizinde değilse, yukarıdaki örneği, Flash içinden tam yol uzantısı girerek değiştirmelisiniz. Örneğin; var istek:URLRequest=new URLRequest (“http://localhost/veri.php”);

 2.036 Okunma

Bu yazıya 13 yorum yapılmış.

  1. tekrar teşekkürler.

  2. Malesef çalıştıramadım. Kodlarda hata var mı? cs5 ile denedim.

    • Bu uygulamayı çalıştırmanız için bilgisayarınızın Php çalıştıracak local server olması gerekli (wampserver kurun). Çünkü Php server tabanlı dildir, client’da çalışmaz. Buna dikkat ederseniz uygulama çalışır. Ben bu uygulamayı deneyerek yazdım ayrıca bu kodları kullanarak da flash, php ve mysql uygulamaları geliştirdim. Kısacası kodlarda herhangi bir sıkıntı yok.

  3. problemin ne olduğunu buldum.
    xamp 3.1.3.1 dan kaynaklanıyormuş.
    movamp ta çalışıyor

  4. başka bir problem localhosttan index sayfasına ulaşınca veriler geliyor fakat flash içinde ctrl enter yapınca veriler yok.

    • Php sunucu tabanlı flash ise client tabanlı bir dil, bundan dolayı da çalıştıramamanız yukarıda belirttiğim gibi çok doğal. Flash içinden çalıştırmanız için tam yol göstermelisiniz örneğin; http://localhost/index.php gibi. Eğer server dosyasının içine atarsanız dediğiniz gibi zaten çalışır.

  5. ok şimdi oldu

  6. mysql de bulunan resmi alırken problemle karşılaşıyorum. PHP kısmında problem yok . Resim bilgisi geliyor fakat, resime dönüşmüyor.
    TypeError: Error #1034: hatası veriyor.
    kodu şu şekilde:
    var resimdata:Loader= new Loader;
    function yuklendi (e:Event):void{ resimdata=e.target.data.resim;
    addChild(resimdata);
    }

    • Benim Flash ile aram pek iyi değil, kusura bakmayın yardımcı olamayacağım maalesef (bir türlü de sevemiyorum Flash’ı ve onunla animasyon yapmayı). Yaptığımız uygulamalarda Flash ile ilgili kısım olursa arkadaşım ilgileniyor. Ben ise web entegrasyonunu, veritabanı tasarımını ve veritabanı bağlantısını yapıyorum.

  7. çok güzel çalışıyor,veritabanından veriler geliyor,peki orada veritabanına yeniden kayıt yapmak için kısım yapsanız,nette cok arastırdım ancak bulamadım

    • Mantığı aynı, sadece SQL komutu olarak Select yerine Insert kullanman lazım. Daha önce yazmış olduğum, MySQL işlemleri yazım sana yardımcı olur.

  8. Öncelikle teşekkürler. Kaynak dosya içerisindeki sql dosyasının görevi nedir? Bu arada ne linux nede windows hostta çalıştıramadım. sql dosyası muhakkak kodları barındırıyor ama nasıl çağrılıyor, bir de linux hostta ekstra bir ayar yapmak gerekir mi?

    • Veritabanında saklanan dosyaların uzantı formatıdır sql (Word için doc, Excel için xls gibi). Flash ile veritabanı uygulaması geliştirmek için (bu örnek için geçerlidir), Php, Mysql ve Apache kurman gerekir. Hepsinin paket olarak sunulduğu Windows için wampserver, Linux için lampserver kurabilirsin. Ayrıca Php dosyalarının bulunduğu aynı dizin içerisinde değilse swf dosyası, tam yol uzantısı vermelisin Flash içerisinden.
      Örneğin; new URLRequest (“http://localhost/veri.php”);

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Flash&AS3, MySQL, Php
Kapat