Post

Class 263- অ্যান্ড্রয়েড অ্যাপ থেকে MySQL ডেটাবেসে ডেটা ইনসার্ট করা (Volley StringRequest এবং PHP $_GET মেথড ব্যবহার করে)

Class 263- অ্যান্ড্রয়েড অ্যাপ থেকে MySQL ডেটাবেসে ডেটা ইনসার্ট করা (Volley StringRequest এবং PHP $_GET মেথড ব্যবহার করে)

আসসালামু আলাইকুম! আজকের ক্লাসে আমরা শিখব কিভাবে অ্যান্ড্রয়েড অ্যাপ থেকে MySQL ডেটাবেসে ডেটা ইনসার্ট করতে হয়। আমরা Android Studio-তে একটি সহজ অ্যাপ তৈরি করব, যেখানে ইউজার তার নাম, মোবাইল নাম্বার এবং ইমেইল দিয়ে সাবমিট করবে। এই ডেটা অ্যাপ থেকে সার্ভারে পাঠানো হবে, এবং সার্ভার PHP দিয়ে ডেটাবেসে স্টোর করবে।

এই ক্লাসটি কমপ্লিট স্টেপ-বাই-স্টেপ গাইড হবে। চলুন শুরু করা যাক!


প্রথমে জেনে নেই কেন এটি জরুরি?

অ্যান্ড্রয়েড অ্যাপ থেকে ডেটা সার্ভারে পাঠানো এবং সেটি ডেটাবেসে স্টোর করা হল ওয়েব এবং মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি মৌলিক ধারণা। উদাহরণস্বরূপ, আপনি যদি একটি রেজিস্ট্রেশন ফর্ম বানাতে চান, তাহলে ইউজারের ডেটা অ্যাপ থেকে সার্ভারে পাঠাতে হবে এবং সেটি ডেটাবেসে সেভ করতে হবে।

আজকের ক্লাসে আমরা এই সিস্টেমটি বানাব।


ধাপ ১: ডেটাবেস এবং PHP API তৈরি করা

প্রথমে আমাদের একটি MySQL ডেটাবেস এবং PHP API তৈরি করতে হবে।

ডেটাবেস টেবিল তৈরি করা

  1. phpMyAdmin ওপেন করুন।
  2. নতুন ডেটাবেস তৈরি করুন। ডেটাবেসের নাম দিন my_database
  3. একটি টেবিল তৈরি করুন যার নাম হবে user_table। এই টেবিলে তিনটি কলাম থাকবে:
    • id (INT, Primary Key, Auto Increment)
    • name (VARCHAR(50))
    • email (VARCHAR(100))
    • mobile (VARCHAR(15))

PHP API তৈরি করা

এখন আমরা একটি PHP স্ক্রিপ্ট তৈরি করব যেটি অ্যান্ড্রয়েড অ্যাপ থেকে ডেটা রিসিভ করবে এবং ডেটাবেসে ইনসার্ট করবে।

নিচের কোডটি দেখুন:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
// ডেটাবেস কানেকশনের জন্য প্রয়োজনীয় তথ্য
$servername = "localhost"; // সার্ভারের নাম
$username = "root";        // ডেটাবেস ইউজারনেম
$password = "";            // ডেটাবেস পাসওয়ার্ড (ডিফল্ট খালি)
$dbname = "my_database";   // ডেটাবেসের নাম

// কানেকশন তৈরি করা
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// URL থেকে ডেটা ক্যাচ করা
$name = $_GET['name'];
$email = $_GET['email'];
$mobile = $_GET['mobile'];

// ডেটা ইনসার্ট করার জন্য SQL কোয়েরি
$sql = "INSERT INTO user_table (name, email, mobile) VALUES ('$name', '$email', '$mobile')";

// কোয়েরি রান করা
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

// কানেকশন ক্লোজ করা
$conn->close();
?>

ফাইল নাম: insert_data.php
লোকেশন: আপনার সার্ভারের ফোল্ডারে এই ফাইলটি রাখুন। উদাহরণস্বরূপ: http://localhost/insert_data.php


ধাপ ২: Android Studio প্রজেক্ট সেটআপ

এখন আমরা Android Studio-তে একটি প্রজেক্ট তৈরি করব।

নতুন প্রজেক্ট তৈরি করা

  1. Android Studio ওপেন করুন।
  2. “New Project” সিলেক্ট করুন।
  3. প্রজেক্টের নাম দিন UserRegistrationApp
  4. ল্যাঙ্গুয়েজ হিসেবে Java সিলেক্ট করুন।

UI ডিজাইন করা

আমরা একটি সহজ UI ডিজাইন করব। এই অ্যাপে থাকবে:

  • তিনটি EditText (নাম, ইমেইল, মোবাইল নাম্বার ইনপুট নেওয়ার জন্য)।
  • একটি Button (ডেটা সাবমিট করার জন্য)।

XML কোড (activity_main.xml):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/editTextName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter Name" />

    <EditText
        android:id="@+id/editTextEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter Email"
        android:inputType="textEmailAddress" />

    <EditText
        android:id="@+id/editTextMobile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter Mobile Number"
        android:inputType="phone" />

    <Button
        android:id="@+id/buttonInsert"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Insert Data" />
</LinearLayout>

ধাপ ৩: Volley Library যোগ করা

Volley হল একটি পাওয়ারফুল লাইব্রেরি যা HTTP রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়।

  1. build.gradle (Module: app) ফাইলে নিচের লাইনটি যোগ করুন:
    1
    
    implementation 'com.android.volley:volley:1.2.1'
    
  2. Sync Now করুন।

ধাপ ৪: ডেটা সাবমিট করার জন্য Java কোড

এখন আমরা Java কোড লিখব যেটি ইউজারের ডেটা নিবে এবং সার্ভারে পাঠাবে।

MainActivity.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.example.userregistrationapp;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

public class MainActivity extends AppCompatActivity {

    EditText editTextName, editTextEmail, editTextMobile;
    Button buttonInsert;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // ইউজার ইনপুট ফিল্ড এবং বাটন ইনিশিয়ালাইজ করা
        editTextName = findViewById(R.id.editTextName);
        editTextEmail = findViewById(R.id.editTextEmail);
        editTextMobile = findViewById(R.id.editTextMobile);
        buttonInsert = findViewById(R.id.buttonInsert);

        // বাটনে ক্লিক লিসেনার যোগ করা
        buttonInsert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // ইউজারের ইনপুট নেওয়া
                String name = editTextName.getText().toString().trim();
                String email = editTextEmail.getText().toString().trim();
                String mobile = editTextMobile.getText().toString().trim();

                // ডেটা সার্ভারে পাঠানো
                sendDataToServer(name, email, mobile);
            }
        });
    }

    private void sendDataToServer(String name, String email, String mobile) {
        // সার্ভারের URL
        String url = "http://192.168.1.100/insert_data.php?name=" + name + "&email=" + email + "&mobile=" + mobile;

        // Volley RequestQueue তৈরি করা
        RequestQueue queue = Volley.newRequestQueue(this);

        // StringRequest তৈরি করা
        StringRequest stringRequest = new StringRequest(Request.Method.GET, 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: " + error.getMessage(), Toast.LENGTH_LONG).show();
                    }
                });

        // রিকোয়েস্ট কিউতে যোগ করা
        queue.add(stringRequest);
    }
}

ধাপ ৫: অ্যাপ রান করা

  1. অ্যাপটি রান করুন এবং ইউজার ইনপুট দিন।
  2. Insert Data বাটনে ক্লিক করুন।
  3. সার্ভারে ডেটা পাঠানো হবে এবং টোস্ট মেসেজ দেখাবে।

শেষ কথা

আজকের ক্লাসে আমরা শিখলাম কিভাবে অ্যান্ড্রয়েড অ্যাপ থেকে MySQL ডেটাবেসে ডেটা ইনসার্ট করতে হয়। আমরা Volley লাইব্রেরি ব্যবহার করে ডেটা সার্ভারে পাঠালাম এবং PHP দিয়ে ডেটাবেসে স্টোর করলাম।