13 Ekim 2017 Cuma

PHP'de MySQL'den çekilen veriyi JSON formatına çevirmek

Leave a Comment


Daha önce PHP ile MySQL veritabanından veri çekme - SELECT yazısında PHP ile MySQL database'den veri çekme işlemini anlatmıştım. Bu yazıda çektiğimiz veriyi JSON formatında ekrana basma işlemini anlatacağım.

Öncelikle database bağlantısını kuruyorum.

mysql_connect("localhost:3434","root","");
mysql_select_db("blogtest");

$sorgu = mysql_query("select No,Isim from Sehirler");

Daha sonra sonuc adında bir dizi tanımlıyorum.

$sonuc = array();

Şimdi mysql_fetch_assoc fonksiyonunu kullanarak sorgu'dan dönen satırları diziye ekliyorum.

while($yaz = mysql_fetch_assoc($sorgu)) {
 $sonuc[] = $yaz;
}

Son olarak json_encode fonksiyonunu kullanarak diziyi ekrana basıyorum.

echo json_encode($sonuc);

Aşağıdaki gibi database'den çektiğim veriler json çıktısında ekrana basıldı.



Kodun tamamı


<?php
mysql_connect("localhost:3434","root","");
mysql_select_db("blogtest");

$sorgu = mysql_query("select No,Isim from Sehirler");
$sonuc = array();
while($yaz = mysql_fetch_assoc($sorgu)) {
 $sonuc[] = $yaz;
}
echo json_encode($sonuc);
?>
Read More

4 Ekim 2017 Çarşamba

C# - Bilgisayarın işletim sistemi bilgilerini öğrenme

Leave a Comment
Bu yazıda Windows Form kullanarak, uygulamanın çalıştırıldığı bilgisayarın işletim sistemine ait bilgileri nasıl ekrana yazdırabileceğimizi anlatacağım.

Öncelikle işletim sistemine ait version bilgisini alacağız. Bunun için System.Enviroment sınıfı altındaki OSVersion değerini kullanıyoruz. Aşağıdaki gibi VersionString değerini ekrana bastığımızda bir alttaki gibi bir çıktı görüyoruz.



Şimdi işletim sistemi ile ilgili alabileceğimiz diğer bilgilere bakalım.

Platform, Version ve Service Pack bilgilerini de gösterebiliriz.



Read More

3 Ekim 2017 Salı

Extension method nedir? Nasıl yazılır?

Leave a Comment
Extension Method, Genişletilebilir Metot anlamına gelmektedir. .NET sınıflarına yeni metotlar ekleyebilme imkanı sunar.

Videolu anlatım için tıklayın.

Bildiğiniz gibi C# dilinde integer bir değeri string türüne çevirmek için .ToString() metodu kullanılır. Yazdığımız extension metotları da tıpkı .ToString() metodu gibi kullanabiliriz.

Extension metotlarını yazdığımız sınıfın ve metotların static olması gerekiyor. Metotların aldığı parametrelerin başında da this ifadesini kullanıyoruz. Şimdi integer bir değer alan ve aldığı değerin faktöriyelini hesaplayarak dönen bir extension metot yazacağız.

Aşağıdaki gibi FaktoriyelHesapla metodunu oluşturduk.


Bir adet textbox, bir adet button, bir adet de label'dan oluşan form bulunuyor. Butona tıklandığında textbox'a girilen sayının faktöriyelini hesaplayarak label'da göstereceğiz.


Butonun click event'ında sayıyı alıyoruz. FaktoriyelHesapla metodunu kullanarak label'a sonucu basıyoruz.


Uygulamayı çalıştırıp işlemleri yaptığımızda faktöriyelin extension method ile hesaplandığını görebiliriz.




Read More

30 Eylül 2017 Cumartesi

Firebase - veritabanına kayıt ekleme (web)

Leave a Comment
Geçtiğimiz yazıda Firebase ile yeni proje oluşturmuştuk. Bu yazıda ise web uygulamalarımızda Firebase database'ine yeni kayıt ekleyeceğiz.

Firebase konsola girdikten sonra projemizi seçiyoruz ve geçtiğimiz yazıdaki son ekrana geliyoruz. Firebase'i web uygulamanıza ekleyin seçeneğine tıklıyoruz.

Daha sonra açılan ekrandaki kodu KOPYALA butonuna tıklayarak kopyalıyoruz.


Şimdi bir html sayfası oluşturuyoruz ve <head></head> etiketleri arasına kopyaladığımız javascript kodlarını ekliyoruz.


Şimdi de no, firstname ve surname alanlarının olduğu bir form oluşturuyorum.


Şimdi de submit() fonksiyonunu yazıyorum. Burada input'lardan değerleri alıp firebase database'ine göndereceğiz.


Şimdi sayfayı çalıştırıp alanları girdikten sonra Add butonuna tıklıyorum.

Database'i kontrol ettiğimde alanın eklendiğini görüyorum.


Read More

Google Firebase ile yeni proje oluşturma

Leave a Comment


Firebase, daha iyi uygulamalar geliştirmenize ve iş akışınızı daha iyi yönetmenize olanak sağlayan bir Google ürünü.

Firebase'in sunduğu tüm olanaklar için https://firebase.google.com/ adresini ziyaret edebilirsiniz. Bu olanaklardan birisi son derece başarılı, bulut tabanlı, NoSQL veritabanı.

Firebase'in veritabanını iOS, Android, Web, C++ ve Unity projelerimizde kullanabiliyoruz.

Nasıl yeni proje oluştururum?

Öncelikle Google hesabımızla login olduktan sonra https://console.firebase.google.com/ adresine gidiyoruz.

Ardından Proje Ekle butonuna tıklıyoruz.


Açılan ekranda Proje adı ve Ülke seçimlerini yaparak PROJE OLUŞTUR butonuna basıyoruz.


Proje oluşturulduktan sonra aşağıdaki gibi bir ekranla karşılaşıyoruz. Artık projemizi oluşturduk ve Firebase'i uygulamalarımıza ekleyebiliriz.




Read More

15 Nisan 2016 Cuma

SQL / MySQL - Union ve Union All kullanımı

1 comment
Bu yazıda SQL'de UNION ve UNION ALL komutlarının ne işe yaradığını, nasıl kullanılacağını anlatmaya çalışacağım.

UNION ve UNION ALL komutları ile birden fazla sorguyu birleştirerek tek sonuç elde ederiz.

UNION komutu, sonuçların duplicate edilmesini engeller. Yani union komutu, DISTINCT komutu ile select sorgusu yazmak gibi düşünülebilir.

UNION ALL'da ise kayıtların duplicate olup olmadığına bakılmaz.

Komutlar hakkında kısa bilgi verdikten sonra örneğe geçiyorum.

"uye" adında bir tablom var ve tabloda aşağıdaki gibi 7 kayıt bulunuyor.



Şimdi Ulke alanı ABD olan kayıtları çekiyorum.

 SELECT * FROM uye WHERE Ulke = 'ABD'  




No alanı 30'dan büyük olan kayıtları çekiyorum.

 SELECT * FROM uye WHERE No > 30  



Şimdi bu kayıtları UNION ALL kullanarak birleştiriyorum.

 SELECT * FROM uye WHERE Ulke = 'ABD'  
 UNION ALL  
 SELECT * FROM uye WHERE No > 30  


Görüldüğü gibi Bobby Dixon'ın ülkesi ABD ve numarası 30'dan büyük olduğu için sorgu sonucunda iki kere gözüktü.

Şimdi UNION ALL yerine UNION komutunu kullanıyorum.

 SELECT * FROM uye WHERE Ulke = 'ABD'  
 UNION  
 SELECT * FROM uye WHERE No > 30  


Bu sefer Bobby Dixon için de sadece bir sonuç döndü.
Read More

8 Nisan 2016 Cuma

Sayfa aşağı kaydıkça içerik yükleme - scroll paging (sayfalama)

1 comment

Bu yazıda scroll aşağı kaydırıldığında içerik yükleme işlemini basit bir şekilde anlatmaya çalışacağım.

Çok fazla veriyi aynı anda çekerek ekrana basmak performans açısından sorun çıkarabilmekte. Bunu engellemek için kullanılan yöntemlerden bir tanesi de scroll'u kullanarak sayfalama yapmak.



1'den 18'e kadar olan sayıları yazılışlarıyla beraber ekrana yazdıracağım. Sayfa yüklendiğinde 1'den 9'a kadar olan sayıları, yüklendikçe de sıradaki 3 sayıyı (10,11,12 / 13,14,15 gibi) yazdıracağım.

body altına aşağıdaki gibi 9 sayıyı ekliyorum.

 <div id="items" class="col-xs-12 col-sm-8 col-sm-offset-2">  
      <div class="item col-xs-3">  
           <span class="letter">Bir</span>  
           <span class="number">1</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">İki</span>  
           <span class="number">2</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Üç</span>  
           <span class="number">3</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Dört</span>  
           <span class="number">4</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Beş</span>  
           <span class="number">5</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Altı</span>  
           <span class="number">6</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Yedi</span>  
           <span class="number">7</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Sekiz</span>  
           <span class="number">8</span>  
      </div>  
      <div class="item col-xs-3">  
           <span class="letter">Dokuz</span>  
           <span class="number">9</span>  
      </div>  
 </div>  

Javascript tarafında üzerinde letter ve number olan listemi tanımlıyorum.

 var itemList = [  
      { letter: 'Bir', number: 1 },  
      { letter: 'İki', number: 2 },  
      { letter: 'Üç', number: 3 },  
      { letter: 'Dört', number: 4 },  
      { letter: 'Beş', number: 5 },  
      { letter: 'Altı', number: 6 },  
      { letter: 'Yedi', number: 7 },  
      { letter: 'Sekiz', number: 8 },  
      { letter: 'Dokuz', number: 9 },  
      { letter: 'On', number: 10 },  
      { letter: 'On bir', number: 11 },  
      { letter: 'On iki', number: 12 },  
      { letter: 'On üç', number: 13 },  
      { letter: 'On dört', number: 14 },  
      { letter: 'On beş', number: 15 },  
      { letter: 'On altı', number: 16 },  
      { letter: 'On yedi', number: 17 },  
      { letter: 'On sekiz', number: 18 },  
 ];  

Şimdi scroll'un en alta geldiğini bulmak için gerekli fonksiyonu yazıyorum. Her scroll'da 3 item çekmek istediğim için, oluşturmuş olduğum pageSize değerini 3 yaptım. lastPage değişkeninde ise item sayısını pageSize'a bölerek görüntülenen son sayfayı buldum. pageSize ve (lastPage + 1) değerleriyle GetNextPage fonksiyonunu çağırdım.

 $(window).scroll(function(){  
      if($(window).scrollTop() == $(document).height() - $(window).height()) {  
           var pageSize = 3;  
           var lastPage = $("#items").find(".item").length / pageSize;  
           GetNextPage(lastPage + 1, pageSize)  
      }  
 });  

GetNextPage fonksiyonunda son index'i bularak sonraki 3 ürünün çekilmesini sağladım.

 function GetNextPage (page, pageSize) {  
      var result = [];  
      var lastIndex = ((page - 1) * pageSize);  
      for(var i = lastIndex; i < (lastIndex + pagesize); i++) {  
           result.push(itemList[i]);  
      }  
      DrawNextPage(result);  
 }  

DrawNextPage fonksiyonunda ise dönen değerleri kullanarak html append işlemini gerçekleştirdim.

 function DrawNextPage (data) {  
      if(data != null && data.length > 0) {  
           var content = "";  
           for(var i = 0; i < data.length; i++) {  
                content += '<div class="item col-xs-3">';  
                content += '     <span class="letter">' + data[i].letter + '</span>';  
                content += '     <span class="number">' + data[i].number + '</span>';  
                content += '</div>';  
           }  
           $("#items").append(content);  
      }  

} DEMO - DOSYALAR

Read More

12 Eylül 2015 Cumartesi

PHP'de jQuery/Ajax kullanarak arama yapma - 2.Part

Leave a Comment
Bu yazı buradaki yazının devamıdır.

Kaldığımız yerden devam ediyoruz.

Sehirler.php dosyamı açarak içerisine aşağıdaki gibi görsel ögelerimi ekliyorum.


SehirAdi şeklinde bir text alanım var. Bu alandaki yazı değiştiğinde veri tabanına giderek girilen text'e uygun kayıtları getirmem gerekiyor. Bunun için de jquery'deki "keypress" fonksiyonunu kullanacağım.

script.js dosyamın ready fonksiyonuna yazmaya başlıyorum.


Input üzerinde tuşa her tıklandığında "AjaxRequest" fonksiyonu tetiklenecek.

Şimdi AjaxRequest fonksiyonumu yazıyorum.


Görüldüğü gibi AjaxRequest fonksiyonum da son derece basit ve anlaşılır. Gelen "word" değeri ile 1.part'ta kontrol amacıyla gittiğimiz url'e istekte bulunuyoruz ve dönen json objesini SehirleriCiz fonksiyonuna gönderiyoruz.

Artık sadece SehirleriCiz fonksiyonu kaldı. O fonksiyonu da aşağıdaki gibi oluşturuyoruz.


Şimdi sayfamızı test edebiliriz.




Read More

PHP'de jQuery/Ajax kullanarak arama yapma - 1.Part

Leave a Comment
Bu yazıda PHP ile AJAX kullanımından bahsedeceğim. Facebook'ta olduğu gibi arama alanına herhangi bir şey yazmaya başladığımızda, yazdığımız kelimeye uygun sonuçları bularak aşağıda göstereceğiz.

İlk olarak kullanacağım dosyaları ve bu dosyalarda hangi işlemleri gerçekleştireceğimi özetleyeyim.


Sehirler.php dosyasına bir text input ile bir div ekleyeceğim.

conn.php dosyasında veri tabanı işlemlerini gerçekleştireceğim.

ajax.php dosyasında conn.php'den bir fonksiyon çağırıp, json döneceğim.

script.js dosyasında jquery işlemlerini gerçekleştireceğim.

jquery.js'nin ne olduğunu zaten hepimiz biliyoruzdur :)

İlk olarak veri tabanı işlemlerimi halletmek için conn.php dosyasında MySQL veri tabanı bağlantısını kuran fonksiyon ile şehirleri getiren fonksiyonu yazıyorum.


Ardından ajax.php dosyamı açarak içerisini aşağıdaki gibi düzenliyorum.


Görüldüğü gibi "op" değerine "SehirleriGetir" yazılması durumunda conn.php'de bulunan SehirleriGetir fonksiyonunu çalıştırıyoruz. Şu ana kadar yaptıklarımızı görmek için tarayıcımdan ajax.php?op=SehirleriGetir&word=ad linkine gidiyorum.


Yukarıdaki gibi bir sonuç dönüyor. Şehir isminde "ad" bulunan şehirler getirilmiş oldu. Veri tabanındaki tablomda bulunan şehirler aşağıdaki gibiydi.


Yazının çok uzun olmaması ve daha kolay takip edilebilmesi için iki parçaya ayırdım. Aşağıdaki linkten okumaya devam edebilirsiniz.

DEVAMINI OKU
Read More

19 Mart 2015 Perşembe

Android'de Bluetooth kontrolü

Leave a Comment
Bu yazıda Android uygulamalarımızda Bluetooth'un açık olup olmadığını nasıl kontrol edecebileceğimizi anlatmaya çalışacağım.

İlk olarak Bluetooth üzerinde işlem yapacağımdan, Bluetooth yetkisi için AndroidManifest.xml dosyama aşağıdaki satırları ekliyorum.




<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

Şimdi Bluetooth'un açık mı yoksa kapalı mı olduğunu öğrenebilirim. Oluşturduğum Activity'ye kodlarımı yazmaya başlıyorum.

OnCreate fonksiyonunda BluetoothAdapter sınıfından nesne türetiyorum. Değer olarak da "BluetoothAdapter.getDefaultAdapter()" değerini veriyorum.

BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();

Ardından "isEnabled()" fonksiyonunu kullanarak Bluetooth'un açık olup olmadığını anlıyorum ve buna göre ekranda bir toast gösteriyorum.

if(bluetooth.isEnabled()){
        Toast.makeText(this, "Bluetooth açık.", Toast.LENGTH_LONG).show();
        } else{
        Toast.makeText(this, "Bluetooth kapalı!", Toast.LENGTH_LONG).show();
        }

Sonucunda OnCreate fonksiyonu aşağıdaki gibi oldu.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
        if(bluetooth.isEnabled()){
        Toast.makeText(this, "Bluetooth açık.", Toast.LENGTH_LONG).show();
        } else{
        Toast.makeText(this, "Bluetooth kapalı!", Toast.LENGTH_LONG).show();
        }
    }

Artık uygulamamı kontrol edebilirim. Run ediyorum ve Bluetooth'um kapalı olduğu için aşağıdaki mesajı görüyorum.








Read More