29 Ocak 2018

Müşteri Memnuniyet Anketi Uygulaması




Müşteri Memnuniyet Anketi uygulaması ile sunduğunuz hizmetin kalitesini sorgulayabilir ayrıca neleri iyi ya da kötü yaptığınızı öğrenebilirsiniz. Bunun için internet bağlantısı olan bir tablet yada telefona uygulamamızı(yada kaynak kodlarını paylaştığımız sizin kendi veri tabanınızı kullanan) kurmanız yeterli böylece hizmet verdiğiniz insanlar özgürce düşüncelerini paylaşabilecekler gerçi ben Müşteri Memnuniyet Anketi Android uygulamasını yaparken ad soyad, TC kimlik numarası ve telefon numarasını zorunlu alan olarak ayarladım ancak TC kimlik numarasından doğrulama yaptırmadığım için bu bilgiler doğru yazılmak zorunda değil belkide başka bir sürümünde gizli yorumcu olarak sadece yorum ve puan alma seçeneği ekleyebiliriz ama bu seferde üşengeç kişiler sürekli yanlış bilgiler yazabilirler deneyip görmek lazım. Android uygulamasının kaynak kodlarını paylaştım ancak puanlamanın istatistiki verilere dönüştürülmesi yada incelenmesi için birde web arayüzü gerekmekte bu kısmını da siz meraklı kullanıcılar halledebilirsiniz diye düşünüyorum.

Kendi iş yeriniz için profesyonel bir Müşteri Memnuniyet Anketi düşünüyorsanız grafik ve işlevsellik istekleriniz doğrultusunda geliştirerek makul ücret karşılığında hizmet verebilirim.

Müşteri Memnuniyet Anketi uygulamasını aşağıdaki linkten indirebilirsiniz.

Uygulamayı geliştirmek isteyen arkadaşlar için kaynak kodlar açıklamalarıyla birlikte aşağıdadır buyrun.

Öncelikle kodlama kısmını sizlerle paylaşayım.




Yukarıdaki kodlar incelendiğinde ilk resimde TinyDB kullanılarak puan etiketinde kullanıcının butonlara basarak verdiği puan depolanıyor tüm butonlarda aynı işlem yapılıyor ancak depolanan puanlar farklı.
ikinci resme geçtiğimizde Screen2 yüklendiğinde TinyDB den puan etiketine sahip değer çekilip Global Puan değerine atanıyor böylece ilk ekranda vermiş olduğumuz puanı ikinci ekrana taşımış olduk sıra diğer kullanıcı bilgilerini toplamaya geldi ikinci ekranda kişiden Ad Soyad, TC, Telefon Numarası ve Yorumunu formlar yardımıyla alıyoruz. Buton1'e tıklandığında bu bilgileri işleyerek veri tabanına post yöntemi ile göndereceğiz gelelim bu bilgileri nasıl işlediğimize:

"for each item in list" fonksiyonu ile bir listedeki her eleman için istenilen bir işlem yaptırılabilir biz bu komutu kullanarak doldurulması zorunlu alanlar oluşturacağız, bunun için öncelikle "make a list" komutunu kullanarak bir liste başlatıyoruz ve doldurulmasını istediğimiz zorunlu alanların her birini resimde görüldüğü gibi listeye ekliyoruz. daha sonra "if item" komutu ile tüm liste elemanlarının içeriğinin boş olup olmadığını kontrol ettireceğiz "Global bos mu" değişkenini dolu ise +1 boş ise +0 şeklinde tanımlıyoruz böylece listemizdeki 3 elemanda dolu ise sonuç 3 olacak. Eğer doldurulması istenen değerler toplamı 3 ten küçükse doldurulmasını istediğimiz yerlerin bir yada daha fazlası doldurulmamış anlamına gelmektedir. Daha sonra sonuç 3 ve daha büyükse sorguyu gönder değilse ekrana "Kişisel bilgiler boş bırakılamaz" uyarısını yazdır diyerek komutu tanımlıyoruz.

Buradan sonra PHP kullanarak veriyi web arayüzüne aktarıp oradan veri tabanına depolama işlemi yaptırıp eğer hata alınmazsa işlemin başarı ile gerçekleştiğini adroid uygulamasına bildirip uygulamanın sonuca göre devam etmesi için komut göndereceğiz.

Mit App İnventor 2 ile Android uygulaması geliştirirken post yönteminde de veriler get yönteminde olduğu gibi & işareti ile birleştirilerek giriliyor tek fark get yönteminde verilerin linke eklenmesi post yönteminde ise işlem yapacak PHP sayfasının adresi giriliyor, veriler işlemi yapacak sayfaya gönderiliyor verilerin birleştirilme şekli yine aynı ancak bunu "Post Text" yapbozu ile yapıyoruz. Bu işlemi yapınca android uygulamamızda oluşan veriler web arayüzüne aktarılmış oluyor şimdi web arayüzünde PHP komutları kullanarak gelen verileri alıp veri tabanına aktaracağız. AnketBilgiGirisi.php isminde bir dosya oluşturalım ve aşağıdaki kodları içine atıp veritabanı ayarlarını yapıp kaydedelim.

AnketBilgiGirisi.php
<?php
// sabitleri tanımladık
define('kullanici','root');
define('sifre','');
define('host','localhost');
define('veritabani','veriler');

// veritabanına bağlandık varsa hatayı ekrana yazdırıp işlemi sonlandırdık
$connect=mysqli_connect(host,kullanici,sifre);
if(!$connect){
die("Veritabanı bağlantı hatası".mysqli_error($connect));
exit();
}
// veritabanındaki tabloyu seçtik eğer tabloyu seçemezsek hatayı ekrana yazdırıp sonlandırdık
$select=mysqli_select_db($connect,veritabani);
if(!$select){
die("Veri tabanı tablo seçim hatası".mysqli_error($connect));
exit();
}
// gönderdiğimiz form verilerinin türkçe karakter hatası vermesini önlemek için bu komutu kullanıyoruz.
mysqli_query($connect,"SET NAMES UTF8");

// AdSoyad degikenine gelen değer varmı diye kontrol ettik
if(isset($_POST['AdSoyad'])){
// formdan gelen verileri değişkenlere tanımladık
$AdSoyad = mysqli_real_escape_string($connect, $_POST['AdSoyad']);
}
// TC degikenine gelen değer varmı diye kontrol ettik
if(isset($_POST['TC'])){
// formdan gelen verileri değişkenlere tanımladık
$TC = mysqli_real_escape_string($connect, $_POST['TC']);
}
// Cep degikenine gelen değer varmı diye kontrol ettik
if(isset($_POST['Cep'])){
// formdan gelen verileri değişkenlere tanımladık
$Cep = mysqli_real_escape_string($connect, $_POST['Cep']);
}
// Yorum degikenine gelen değer varmı diye kontrol ettik
if(isset($_POST['Yorum'])){
// formdan gelen verileri değişkenlere tanımladık eğer formdan veri gelmiyorsa değişkeni boş tanımladık
$Yorum = mysqli_real_escape_string($connect, $_POST['Yorum']);
} else {
$Yorum = '';
}
// Puan degikenine gelen değer varmı diye kontrol ettik
if(isset($_POST['Puan'])){
// formdan gelen verileri değişkenlere tanımladık
$Puan = mysqli_real_escape_string($connect, $_POST['Puan']);
}
// AdSoyad TC ve Cep degişkenleri tanımlanmıssa veri girisi yapmasına izin veriyor
if(isset($AdSoyad) and ($TC) and ($Cep) and ($Puan)){
// Anket tablosuna girilecek bilgi hazırlandı
$sorgu = "INSERT INTO Anket(id, AdSoyad, TC, Cep, Yorum, Puan) VALUES (NULL, '".$AdSoyad."','".$TC."', '".$Cep."', '".$Yorum."', '".$Puan."')";
// hazırlanan bilgi veritabanına baglanılarak gönderldi
$BaglanVeGonder = mysqli_query($connect, $sorgu);
if(!$BaglanVeGonder){
die("Tüm bilgiler hazırdı ancak veri gönderilemedi".mysqli_error($connect));
exit();
}else{
echo "ok";
}

// veri tabanını durdurduk
mysqli_close($connect); 
?>
Böylece android uygulamamızdan gelen veriler sunucunun veri tabanına aktarılmış olacak PhpMyAdmin'e girip gönderilmiş olan verileri inceleyebilirsiniz.

Müşteri Memnuniyet Anketi android uygulamasının aia dosyasını indirip projeyi kendi hesabınızda açabilirsiniz buyrun.

PhpMyAdmin tablo yapısı



sql Dosyası aşağıdadır isterseniz indirip veritabanınıza import ederek içe aktarabilirsiniz.

7 yorum:

  1. Merhaba hocam php ile ilgili açıklayıcı şekilde anlatım yapabilirseniz sevirim.

    YanıtlaSil
    Yanıtlar
    1. Merhaba verilerin veritabanına aktarılmasına kadar olan PHP kodları mevcut programdan gelen verileri veritabanına ulastirabilirsiniz. Siz verileri incelemek için mı açıklama istiyorsunuz?

      Sil
    2. Anket.sql dosyasını, phpmyadmin'e yükleyince bende hata veriyor. Sanırım o dosyada bir sıkıntı var. Projeniz çok güzel olmuş ama android programdan php'ye veri nasıl alınır bu konuda bilgim çok az. Bu kısmı açıklayıcı şekilde anlatabilirseniz çok sevinirim. Kolay gelsin...

      Sil
    3. Anket.sql tablo yedeğidir onu yukeleyebilmen için önce veritabanı olustur örneğin veriler isminde bir veritabanı daha sonra olusturdugun veritabanına tıkla böylece seçmiş olacaksın içe aktarmayı burada yaparsan anket tablosu veriler isimli veritabanına aktarılacaktır. Bu işlemi yapınca diğer kısma geçelim parça parça yardımcı olayım sana

      Sil
  2. Hocam anket.sql dosyasını yüklüyorum.

    Sabit çözümleme:

    Çözümleme sırasında 2 hata bulundu.

    Açık bir köşeli parantez ardından bir grup değer beklenmekte. (near "SET" at position 215)
    Beklenmedik belirteç. (near "SET" at position 215)
    SQL sorgusu:

    -- -- Tablo döküm verisi `Anket` -- INSERT INTO `Anket` (`id`, `AdSoyad`, `TC`, `Cep`, `Yorum`, `Puan`) VALUES (1, 'Alper ZENGİN', 12345678901, 05551234567, 'bişeyler türkçe karakter', 5), /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */

    MySQL çıktısı: Belgeler

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */' at line 9



    bu şekilde bir hata veriyor.

    YanıtlaSil
    Yanıtlar
    1. Veritabanındaki Türkçe karakter hata almana neden olmuş http://umtaaka7.com/dosyalar/AnketNoTr.sql bu adresteki veritabanından Türkçe karakterleri çıkardım bunu denermisin

      Sil
    2. Bu arada SQL dosyasını sağ tıklayarak farklı kaydet dediğini düşünüyorum üzerine tıklayıp tarayıcıda açarsan Türkçe karakterler sayfa dili tanimlanmadigi için degisir

      Sil

Popüler Yazılar

Bize Yazın

İzleyiciler