wordpress tema adresinden indirlmiştir.

Android ile MySQL Bağlantısı (Volley)

By Admin, 20 Şubat 2017

Merhaba arkadaşlar bugün sizlerle Android, PHP ve MySql kullanarak uzak sunucudaki veritabanımıza kullanıcı kaydı yapacağız. Bunun için Android’in Volley kütüphanesini kullanacağız ve bu şekilde kullanıcı adı ve şifre gibi değerleri web servisimize post atacağız. Web servisimiz de bu kullanıcı adına sahip başka bir üyenin olup olmadığına bakacak ve sonrasında bize “Eklendi” yada “Eklenemedi” şeklinde bildirimde bulunacaktır. Bu şekilde bizde dış dünya ve internetle daha içli dışlı bir uygulama geliştirmiş olacağız.

Tamamlanmış Android Projesine buradan ulaşabilirsiniz. Projeyi indirdikten sonra MainActivity.java içerisindeki url değişkeninin değerini kendi kaydol.php dosyanızın adresiyle değiştirmeyi unutmayın!!!

1)Layout Tasarımı

Android Stüdyoyu açıyoruz ve MySQLBaglantisi adlı bir proje oluşturuyoruz. Activity ismine is MainActivity ismini veriyoruz.

Sonrasında ise activity_main.xml dosyasını açıyoruz ve RelativeLayout’ı LinearLayout’a Çeviriyoruz. android:orientation=”vertical” diyoruz.

Sonrasında ise şu satırları LinearLayout tagleri arasına ekliyoruz.

<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“Username”/>

<EditText
android:layout_width=“match_parent”
android:layout_height=“50dp”
android:id=“@+id/txtUsername”
android:textColor=”#111111″
android:background=“@android:color/background_light” />

<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“Password”/>

<EditText
android:layout_width=“match_parent”
android:layout_height=“50dp”
android:id=“@+id/txtPassword”
android:textColor=”#111111″
android:background=“@android:color/background_light” />

<Button
android:layout_width=“match_parent”
android:layout_height=“50dp”
android:id=“@+id/btnEkle”
android:textColor=“#000000”
android:text=“Ekle”
android:background=“#d9d9d9”
android:onClick=“ekle” />

 

2)Kütüphanenin Projeye Eklenmesi ve İzinler

Şimdi sol taraftaki Project sekmesine tıklıyoruz Gradle Scripts başlığının altındaki build.gradle(Module:app) dosyasını açıyoruz ve dependencies bölümünün içine

compile ‘com.android.volley:volley:1.0.0’

ekliyoruz ve gradle.build dosyasında değişiklik yaptığımız için Sync Now butonu geliyor ekrana ve ona tıklıyoruz.

Böylece Volley Kütüphanesini projeye eklemiş olduk.

Sırada bu kütüphaneyi kullanabilmek için internet iznini vermek gerekiyor. Bunun için de AndroidManifest dosyasını açıp <manifest> teginin arasına aşağıdaki izni ekliyoruz.

<uses-permission android:name=“android.permission.INTERNET” />

 

3)Mobilden alınan değerlerin web servise post edilmesi

MainActivity.java dosyasını açıyoruz. Aşağıdaki fonksiyonu sınıf içine ekliyoruz.

public void ekle(View view)
{
    EditText txtUsername=(EditText)findViewById(R.id.txtUsername);
    EditText txtPassword=(EditText)findViewById(R.id.txtPassword);

    final String username=txtUsername.getText().toString();
    final String password=txtPassword.getText().toString();

    if(username.equals("")==false && password.equals("")==false)
    {
        RequestQueue queue = Volley.newRequestQueue(MainActivity.this);

        String url = "http://DOSYAADRESI/kaydol.php";    // Post atılan adres.
        StringRequest postRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>()
                {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();

                    }
                },
                new Response.ErrorListener()
                {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
                    }
                }
        ) {
            @Override
            protected Map<String, String> getParams()
            {
                Map<String, String>  params = new HashMap<String, String>();
                params.put("username", username);
                params.put("password", password);

                return params;
            }
        };
        queue.add(postRequest);
    }
    else
    {
        Toast.makeText(MainActivity.this,"Lütfen Gerekli Alanları Doldurun",Toast.LENGTH_LONG).show();
    }

}

4)Veritabanı,Tablo oluşturma ve Web Servisi(kaydol.php) Yazma

böylece İşin mobil uygulama tarafı tamamlanıyor. Artık mobil uygulamadan attığımız post istekleri karşılayacak ve gerektiğinde veritabanına ekleyecek web servisini(yukarıda post attığımız kaydol.php dosyası yani) yazacağız ve bunun için php dilini kullancağız.
Sırada ise veritabanımızı oluşturmaya geldi. MySql Workbench veya PhpMyAdmin(Hangisini kullanıyorsanız) gibi araçların aracılığı ile Veritabanımızı ve tablomuzu oluşturuyoruz.

Veritabanımı oluşturduktan sonra o veritabanına üyeler isimli bir tablo ekliyoruz.

Bu tablo 3  sutundan oluşuyor id(int), username(varchar), password(varchar).

İd sütunu  primary key, auto increment ve not null olarak işaretlenmeli.

Ayrıca username ve password sütunları da not null olarak işaretlenmeli.
Ve şimdi kaydol.php diye bir dosya oluşturuyoruz, ardından da aşağıdaki kodları dosyaya ekliyoruz.

 

kaydol.php 


<html>
    
<head>
        <meta charset="UTF-8">
</head>
<body>
    <?php
        $username=$_POST["username"];
        $password=$_POST["password"];
       
        $servername = "Sunucu Adresin";         // Veritabanı adresi yada ip'si yer almalı
        $user = "Veritabanı Kullanıcısı";            // bu alanda ise veritabanının kullanıcı adı yer almalı.
        $pass = "Veritabanı kullanıcı şifresi";     // bu alanda veritabanı kullanıcı şifresi yer almalı.
        $dbname = "Veritabanı adı";                  // bu alanda veritabanı adı yer almalı
        $isExist=false;
 
        $conn = new mysqli($servername, $user, $pass, $dbname);
        if ($conn->connect_error)
        {
            die("Connection failed: " . $conn->connect_error);
        }
        $sql = "SELECT * FROM uyeler where username='$username'";
        $result = $conn->query($sql);
 
        if ($result->num_rows > 0)
        {
                $isExist=true;
                $conn->close();
                echo 'Böyle bir kullanıcı zaten mevcut';
        }
        else
        {
            $conn->close();
            $conn2 = new mysqli($servername, $user, $pass, $dbname);
           if ($conn2->connect_error)
            {
                die("Connection failed: " . $conn2->connect_error);
            }
            $sql2 = "INSERT INTO uyeler (username, password) VALUES ('$username', '$password')";
            if ($conn2->query($sql2) === TRUE)
            {
                echo "Kullanıcı başarıyla kaydedildi!";
            }
            else
            {
                echo "Error: " . $sql2 . "<br>" . $conn2->error;
            }
            $conn2->close();
        }
    ?>
</body>
</html>
 

 

What do you think?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir