8 Mayıs 2017 Pazartesi

Mongo DB de CRUD ve diğer işlemler için örnek kodlar

MongoDB konsolu için kullanılacak bazı temel komutları sizler için derledim. Başlangıçta sizi bu dertten kurtarmak için işe yarayacağını umuyorum. İyi çalışmalar..

EKLE

db.user.insert( { name : “sahin”, lastname: “besinci”, addedDate: new Date() } )
-> name şahin, lastname beşinci, addedDate bugün olan değeri user tablosuna ekler.

LİSTELE

db.user.find()
-> tablodaki bütün verileri getirir.

db.user.find() [0]
-> tablodaki ilk veriyi getirir.

db.user.findOne()
-> tablodaki ilk veriyi getirir.

db.user.findOne( { name : “sahin”  } )
-> name:”sahin” olan verilerin ilkini getir.

db.user.find().pertty()
-> tablodaki bütün verileri getirir. Json formatında düzenli görüntüler.

db.user.find( { name : “sahin” } )
-> name: “sahin” olan satırları getir.

db.user.find( { } , { name: true } )
-> name değerine sahip olan değerleri getirir. false olursa sahip olmayanları getirir

db.user.find( { name : “sahin”  } , { lastname : 1  } )
-> virgülden önceki ilk deger filtre için, ikincisi istenilen parametreleri belirtir

SİL

db.user.remove( {  } )
-> bütün satırları siler.

db.user.remove( { name: “sahin” } )
-> name:”sahin” olanların name değerlerini siler.

db.user.remove( { _id= ObjectId(“5616543215a4s6df313543a”) } )
-> id ye sahip satırı siler.


GÜNCELLE ;

db.user.update( { name:”sahin”  } , { $set : { soyadi : ”besinci” } } )
-> name:”sahin” olan satırın soyadı:”besinci” olarak günceller.

db.user.update( { name:”sahin”  } , { $set : { soyadi : ”besinci” } } , { multi : true } )
-> name:”sahin” olan bütün satırların soyadı:”besinci” olarak günceller.


DİĞER

db.user.count()
-> tablodaki toplam satır sayısını getirir.

db.user.find().skip(10)
-> 10 satırı atlar.

db.user.find().limit(10)
-> Sadece 10 satır getirir.

db.user.find().sort( { age : 1  } )
-> age ASC sıralaması yapar. -1 olsaydı DESC sıralardı.

db.getCollectionNames()
-> veritabanındaki tablo isimlerini  getirir.


use <table name>
use user  
-> user tablosuyla etkileşim yapar.

show dbs
-> server daki veritabanlarını getirir.

show collections
-> veritabanının tablolarını getirir.

MongoDB Kurulumu, Çalıştırılması, Basit Bir Örneği | Setup MongoDB, Executing, tutorial

Mongo dbnin kurulması çalıştırılması ve basit bir örnekle anlatılması için hazırlanmıştır. Mongo DB yi çalıştırabilmek için öncelikle mongod.exe yi çalıştırarak server hizmetini aktifleştirmemiz gerekmektedir. Bu serveri çalıştırmak için MongoDB nin kurulu olduğu dizine cmd ekranından ulaşmamız gerekmektedir.


C:\MongoDB

şeklinde kurulu olduğunu varsayıyorum,

cmd ekranında

cd "C:\MongoDB\bin"



komutunu yazıp enterlıyoruz. Konsolumuz bu klasöre giriş yaptıktan sonra yeni bir komut yazıyoruz. Bu yazacağımız komut MongoDB nin server hizmetini çalıştırmasını sağlayacaktır. Veritabanı için yazacağımız kodlar bu server üzerinden hizmet vermeye başlayacaktır. Konuyu fazla dağıtmadan devam edelim. Bu kodu yazmadan önce bir data klasörü oluşturmamız gerekmektedir. Bu klasörde verilerimiz yer alacaktır. “Data” Klasörümüzü MongoDB içinde manuel olarak el ile oluşturuyorum.

asdfasdfAlıntısı.PNG

Klasörümü oluşturduktan sonra hizmeti çalıştıralm. MongoDB hizmetinin çalışmasını sağlayan kodumuz:

mongod.exe --dbpath "C:\MongoDB\Data"


yazıp enterlıyoruz. Ve hizmetimiz çalışmakta...


Artık shell ekranımızdan veritabanı işlemleri yapabiliri. Shell ekranına gidebilmek için yeni cmd ekranı açıyoruz. Aynı şekilde MongoDB kalsörünün bin kalsörüne gidiyoruz.
> cd "C:\MongoDB\bin"

yazıp enterlıyoruz. Şimdi shellimizi çalıştıralım.

> mongo.exe

yazıp enterlıyoruz. Ve artık shell ekranındayız. Öncelikle herhangi veritabanımız varmı, onu görmek için

asdfasdasdfAlıntısı.PNG
> show dbs

yazıp enterlıyoruz. Aşağıda 3 adet veritabanı adı gözükmektedir. deneme isimli olan veritabanını daha önceden ben oluşturduğum için burada takılmayın. Şimdi veritabanımıza geçiş yapmak istiyoruz diyelim. Bunun için;

> use deneme

yazarak geçiş yapıyoruz. Eğer geçiş yapmak istediğiniz veritabanı mevcut değilse ve enterladıysanız hem geçişi yapar hemde olmayan veritabanını oluşturur. Geçişi yaptığımıza göre şimdi veritabanındaki tabloları görüntülemek isteyelim.

asdqwefasdasdfAlıntısı.PNG
> show collections

yazıp enterlıyoruz. Görüldüğü üzere bir adet user tablomuz mevcutmuş. Bunuda ben daha önceden oluşturmuştum. Tablo oluşturmak için özellikle çaba sarfetmemize gerek yok. Şimdi tabloda yapacağımız sorgulama işlemi ile o tabloyu oluşturabiliyoruz. Mantık: sorgularken olmayan tabloyu oluşturup onun üzerinde sorgulama yapmaktır. Yada olan tablo üzerince oluşturmadan sorgulama yapmaktır. Şimdi uye tablosu üzerinde ekleme işlemi yapalım.

asdqasdfasdfwefasdasdfAlıntısı.PNG
> db.uye.insert( { adi:“Ahmet”, soyadi : “Soylu” } )

yazıp enterlıyoruz. Ekrana eklendi bilgisi olan 1 sonucu döndürülüyor. şimdi eklediğimiz bilgiyi görmek için ekrana getirme sorgusu yazalım diğer bi deyişle SELECT sorgusu,

asdqasdasdfasdffasdfwefasdasdfAlıntısı.PNG
> db.uye.find()

yazıp enterlıyoruz. Görüldüğü üzere sorgumuz ekrana getirildi. Eklediğimiz veriyi Json formatında getirmeyi başardık. Şimdi bu veri üzerinde güncelleme yapmak isteyelim.





> db.uye.update({adi:"Ahmet"}, {$set: { age: 23, soyadi:"Besinci"}})

yazıp enterlıyoruz. Gelen bilgidende anlaşılacağı üzere Matched:Karşılaşma bulundu ve Modified:Düzenleme yapıldı sonuçları 1 döndü. Bu işlem sadece bir satır güncellemesi için kullanılır. Bütün satırlara kullanabilmek için;

> db.uye.update({adi:"Ahmet"}, {$set: { age: 23, soyadi:"Besinci"}}, {multi:true})

multi:true eklemek gerekmektedir. Böylece bütün tablodaki bütün adi Ahmet olanların soyadi ve yasi bilgisi güncellenir. Şimdi CRUD(Create,Read, Update, Delete) işleminin sonuncusu olan silme işlemini gerçekleştirelim.

Silme işlemi 2 şekilde anlatmak istiyorum. Birincisi eklediğimiz verilerin adi, yasi gibi sildirme işlemleri. İkincisi Id sini vererek komple satırı sildirme işlemidir.

İlki için;

asdAlıntısı.PNG
> db.uye.remove( { name: “Ahmet” } )

yazıp enterlıyoruz. name:”Ahmet” olan değerleri tablodan silmeye başlar.

İkincisi için;
asdasdAlıntısı.PNG
> db.uye.remove({_id:ObjectId("59106619f3f299487e2d3b89")})

yazıp enterlıyoruz. Ve id si eşit olan satırı komple silmeye başlıyor.

sizin için bazı temel komutları derledim.
Başlangıç için anlatılacaklar bu kadar arkadaşlar, İyi çalışmalar.

16 Haziran 2016 Perşembe

Change sprite with script | Sprite yi script ile değiştirme Unity3d

Merhaba arkadaşlar, unityde oluşturduğumuz nesnelerin kod ile görünümlerini bazen değiştirmek isteriz. Sprite olarak oluşturduğumuz görünüm dosyalarında bu değişiklikleri kod ile nasıl değiştiririz işte burada yazacağımız kod bize bu değişikliği sağlayacaktır.

Örneğin; ilerleyen bir nesnemizin zıplarken farklı bir görünüme sahip olmasını isteriz.

public Sprite changeObject;
public GameObject object = new GameObject();
 

void Start()
{
    object.gameObject.GetComponent<SpriteRenderer>().sprite = changeObject;

}

bu satırda gerçekleştirdiğimiz atama işlemi ile, nesnemizin sahip olduğu görünümü başka bir görünüm ile değiştirmekteyiz.


14 Haziran 2016 Salı

use properties for gameObject | Nesnenin özelliklerini kullanma, Unity3d

Merhaba arkadaşlar, unity3d projesinde oluşturduğumuz script dosyamızda, projemizdeki bir nesneni hareket etmesi ya da nesneyi renklendirme gibi farklı şekiller uygulamak isteriz. Script dosyamızı oluşturduktan sonra bu dosya ile nesneyi bir şekilde bağdaştırmamız gerekecektir. Bu bağdaştırma özelliği için öğrendiğim iki metodu sizinle paylaşacağım.
Script dosyasını oluşturduktan sonra AddComponent ile öncelikle nesnemin kontrolörüne(inspector) ekliyorum.
Add Componente tıkladıktan sonra Component menüsünden Scripts i seçiyorum. Burada görünen İsimler daha önceden oluşturmuş olduğum Script dosyalarımın isimleridir. Nesneme eklemek istediğim Script dosyasının ismini bu menüden bularak tıklıyorum ve kontrolörüme(inspector) ekliyorum. Ekledikten sonra kontrolörümde(inspector) Script dosyamın eklendiğini görüyorum.


Nesnem ile Script dosyamı birleştirdikten sonra Script dosyamda nesnemin özelliklerini kullanacağım.
İlk öğrendiğim metod Script dosyamda

public GameObject cube;

değişken tanımlaması yapıyorum. Bu tanımlamadan sonra dosyamı kaydedip Unitye dönüyorum. Nesneme tıkladıktan sonra kontrolörde(inspector) Script özellikğimin eklendiği bölüme geliyorum ve burada Script dosyasında tanımlama yaptığım değişkenimin adının yazıldığını görüyorum.


Değişken adının yanında bulunan "None" değerinin üzerine, Project sekmesinde bulunan nesnemi basılı tutup bırakıyorum.


bu işlemi yaptıktan sonra, Script dosyamda cube değişkeninde yaptığım değişiklikler oyundaki nesnemin üzerindeki değişikliklere neden olacaktır.

İkinci öğrendiğim metod ise Script dosyamda

public GameObject cube = GameObject.Find("Cube");

tanımlaması ile ilk yöntemim gibi nesneme ile script dosyamdaki değişken ile müdahale edebileceğim.  Burada bulunan Find fonksiyonu içerisine verilen parametre adı Hierarchy sekmesindeki nesnemin adı ile aynı olmalıdır.

Bu tanımlamalar ile yapılan bir örnek kod paylaşmak isterim.


 bu tanımlama sayesinde cube nesnemin bulunduğu pozisyon her üst ok ile alt oka tıklamamla değişecektir.

Unity3d InvokeRepeating, Invoke ve CancelInvoke nedir ? | What is InvokeRepeating, Invoke and CancelInvoke on Unity3d ?

Yeni başladığım unityle karşılaştığım bir metodu sizinle paylaşacağım. Bu metod ile unityde süreklilik sağlayabilmekteyiz. Yani Unity3d de nesneler üzerinde sürekli işlemler yaptırmak istiyorsak zamanlayıcı gibi kullanabileceğimiz InvokeRepeating metodu bize oldukça yardımcı olmaktadır. Bu metodun kullanımı:


şeklindedir. InvokeRepeating' in ilk parametresi olan "PropFunction" string değeri, fonksiyonun ismidir. Biz fonksiyonun ismini vererek o fonksiyonu InvokeRepeating fonksiyonunda sürekli çağırmasını sağlamaktayız.
İkinci parametre olan 3 değeri ile InvokeRepeating metodunu, programın çalışmasında sonraki başlatılma süresidir. Yani program başladıktan 3 sn sonra InvokeRepeating çalışmaya başlayacak.
Son parametre olan 1 ise string olarak ismini verdiğimiz fonksiyonun kaç saniyede bir sürekli çalışması istiyorsak verdiğimiz değerdir.


Invoke metodumuz ise süreklilik ifade etmeden bir kereliğine çalıştırmak istediğimiz fonksiyonlar için kullanılmaktadır. Örneğin, Invoke metodumuz da başlangıçta belirleyeceğimiz değerleri fonksiyon çağrısı yaparak tanımlayabiliriz. Çalışacak fonksiyon için program başlamasından sonra belirli bir süre sonra çalışmasını istiyorsak bu fonksiyonun özelliğini kullanarak bunu gerçekleştirebiliriz.


İlk parametre ile fonksiyonumuzun ismini vererek çağırma işlemi gerçekleştiriliyor. İkinci parametremiz sayesinde ise fonksiyonun kaç saniye sonra çalışmasını istiyorsak o süre aralığını vererek istenilen zamanda çalışmasını istiyoruz.


CancelInvoke fonksiyonu, çalışan invoke fonksiyonunu sonlandırmak için kullanılır. Mesela InvokeRepeating fonksiyonumuz çalıştıktan sonra sürekli olarak çalışacaktır. InvokeRepeating fonksiyonun sürekliliğinin engellenmesini istediğimiz anda CancelInvoke metodunu çalıştırılarak sonlandırmış olacağız.


Görüldüğü gibi tek parametre alan CancelInvoke fonksiyonunun aldığı parametre, Daha önceden InvokeRepeating ile çalıştırdığımız fonksiyonun ismini vererek o fonksiyonun çalışmasını durdurmaktayız. CancelInvoke fonksiyonu son kez çağırılan fonksiyonun sonlanması ile sonlanacaktır. Çağırılan fonksiyon kesmeye uğramayacaktır.


11 Haziran 2016 Cumartesi

Android ile Php web servisi oluşturma - Mysql Oluşturma ve sunucuya yükleme | Create php web service use with Android - Creating Mysql and upload server

Merhaba arkadaşlar, Bu yazımızda Android ile php web servisleri projesinde veritabanımızı oluşturacağız. Veritabanımı olarak Mysql kullanacağız. Öncelikle lokalde oluşturacağımız veritabanını daha sonrasında sunucumuza yükleyeceğiz. Bir önceki yazımızda sunucumuzdan bahsetmiştik.

Buradan Yazının Videolu anlatımına geçebilirsiniz.

Şimdi gelelim Veritabanımızı oluşturmaya. Bunun için önceden yüklediğimiz XAMPP serverde apache ile MySQL' i çalıştırıyoruz.


Daha sonra tarayıcımıza http://localhost:(apache port)/phpmyadmin yazarak phpmyadminimizi açıyoruz. Apache portum 31 olarak ayarlı. O yüzden ben http://localhost:31/phpmyadmin yazarak phpmyadmine giriş yapıyorum. Kullanıcı adı ile şifrem olmadığı için direk bağlantı sağlıyorum. Eğer sizin kullanıcı adı ve şifreniz varsa lütfen bilgilerinizi girip giriş yapın. Giriş yaptıktan sonra;

Yeni veritabanı oluşturuyorum adını 'DBphp' koyuyorum.



Oluşturulan veritabanımın SQL sekmesine tıklayarak aşağıdaki kodları kopyalayıp çalıştırıyorum.

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

CREATE TABLE `uyeler` (
  `UyeID` int(11) NOT NULL,
  `AdSoyad` varchar(255) NOT NULL,
  `Email` varchar(255) NOT NULL,
  `Sifre` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin5;

 
ALTER TABLE `uyeler`
  ADD PRIMARY KEY (`UyeID`);


ALTER TABLE `uyeler`
  MODIFY `UyeID` int(11) NOT NULL AUTO_INCREMENT;


 
çalıştırdığım zaman veritabanımda bir tane tablo oluşması gerekmektedir. Sonra veritabanımızın yedeğini alacağız. Bu yedeği alıp sunucumuza yükleyeceğiz.



Veritabanımıza seçerek;


Üstteki menüden Dışa aktara tıklıyoruz. Hiç bir ayarı değiştirmeden Git'e tıklıyoruz ve veritabanımızın yedeğini indiriyoruz.


Oluşan DBphp.sql dosyasını masaüstümüze alalım ki sunucuya yüklerken birdaha dosya yolunu göstermekle uğraşmayalım.


Şimdi sunucumuza giriş yapalım. Giriş yaptıktan sonra menüden Gelişmiş Araçların altında bulunan Veri Tabanı Yöneticisi' ne tıklıyoruz.


Açılan pencerede yeni bir veritabanı oluşturmamız gerekiyor.Veritabanı adının başında değiştirilemez bir isim yer alıyor ve devamında koymak istediğimiz veritabanı adını yazıyoruz. Ben değiştirilemez ismin devamına "dbphp" ekliyorum. Şifremi yazıyorum. Veritabanı oluştura tıklıyorum.


Oluşan veritabanı hemen sayfanın alt tarafında görüntüleniyor.



Burada Yönetim Başlığı altında bulunan "phpMyAdmin 4 See all tools" linkine tıklayarak sunucumun phpmyadmini ni açıyorum.


Açılan panelde İçe aktara tıklıyorum.

Gözata tıklıyorum. Burada DBphp.sql dosyamı daha önceden masaüstüme almıştım. Masaüstüne aldığım dosyamı seçiyorum ve Git' e tıklayarak sunucumdaki veritabanıma yedeklemiş olduğum veritabanını yüklemiş oluyorum.

Şimdi projemizin geri kalanına devam edelim.

Kullanılan materyaller:
- DBphp.sql

Android ile Php Web Service Kullanmak | Php web service use with Android (Videolu Anlatım)

Merhabalar Arkadaşlar, Yakın zamanda Android ile Asp.Net web servis kullanımı ile ilgili bir projeyi beraber yapmıştık. Şimdi Android uygulaması ile birlikte php web servis kullanımı yapacağız. Yapacağımız servisler web üzerinde canlı olarak yayın yapacak. Lokal de sınırlı kalmayacağız. Böylece canlı ortamda uygulamalarımızın çalışırlığınıda bir nevi öğrenmiş olacağız. Biliyorsakta bilmeyen arkadaşlarımız için öğretici bir yazı olacak.

Android uygulamamız olarak basit bir uygulama olacak. İçerisinde üyelik bilgileri ile ekle, sil ve listele özelliği bulunan bir uygulama yapaccağız. Verilerimiz, android uygulamamızdan web servislerimiz aracılığıyla veritabanımıza ulaşacak.

Kullanılan Uygulamalar
- Android (Android Studio)
- Lokal sunucu (Xampp server) - Phpmyadmin kullanılacak.
- Web Hosting - Linux (Biz.nf - http://cp1.biz.nf/beta)
- Notepad++ (Web servis)
- FileZilla
- Advanced Rest Client (ARC - Web servis client)
- TeamViewer (Android Emülator)

Kurulumlar:
- Android Studio Kurulumu
- Lokal Sunucu Kurulumu
- Web Hosting Üyeliği alma
- Notepad++ Kurulumu
- Advanced Rest Client Kurulumu
- TeamViewer Kurulumu PC - Mobil Bağlantısı

1- Web hosting' den öncelikle üyeliğimizi alalım. Videolu anlatım.
2- Mysql veritabanımızı oluşturalım ve sunucuya yükleyelim. İkinci işlem olarak Android uygulamamızın tasarımını oluşturalım. Videolu anlatım.
3- Web servislerini Androidin isteklerine göre oluşturacağız. Videolu anlatım.
4- Android ile uye ekleme işlemini gerçekleştirelim. Videolu anlatım.
5- Android ile uye listeleme işlemini gerçekleştirelim. Videolu anlatım. 
6- Android ile uye silme işlemini gerçekleştirelim. Videolu anlatım.

Uygulamamızın sonuna gelmiş bulunmaktayız.


-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Uygulamamızda kullanılan dosyalara aşağıdaki linklerden edinebilirsiniz.



- Web Servisleri :
- Android Uygulama :
- DBphp.sql: