শনিবার, ৮ অক্টোবর, ২০১১

android মোবাইল এর মাধ্যমে mysql ডাটাবেস এ connection এবং ডাটা access


 এই Project এ আমরা একটি PHP Script ব্যবহার করব যেটা android phone কে mysql databaseএর সাথে connect করবে।

 


আমরা তিনটি ধাপে Project সম্পন্ন করতে পারি।ধাপগুলো নিম্নরুপঃ


ধাপ ১
       Project টি যখন রান করবে তখন একটি PHP Script Android Phone কে MySql Database এর সাথে    connect   করবে।
ধাপ ২
      PHP Script টি ডাটাবেস থেকে ডাটা আনবে এবং JSON(JavaScript Object Notation) format এ পরিবরতন করবে।তারপর সেই ডাটা পাঠিয়ে দিবে android Device এ।

ধাপ ৩
     Android Phone ডাটা গুলো পেলে সেটা parse করবে এবং phone এ দেখবে


প্রথমে আমরা একটি নতুন android project create করব‍.

Run Eclipse -> File -> New -> Android Project.

তারপর নিচের চিএের মত field গুলো পূরন করি

 click Finish বাটন. Project  টি  তৈরি হয়ে গেলে এটা রান করব।

যেহেতু আমরা local server ব্যবহার সেহেতু আমরা XAMPP setup করে নিব।XAMPP Control Panel রান করব এবং Apache আর mysql start করব।
তারপর আমরা c:/xampp/htdocs folder এ Test.php file টি রাখব।

Test.php code
<?php
mysql_connect("localhost","root","");
mysql_select_db("world");
$sql=mysql_query("select * from countryName where  country like 'B%'");
while($row=mysql_fetch_assoc($sql))
$output[ ]=$row;
print(json_encode($output));
mysql_close(); 
?>
 


আমরা localhost world নামে একটি ডাটাবেজ create করব।যেখানে countrrName নামে একটি table এবং table এ country নামে একটি field থাকবে যার datatype হবে varchar।Bangldesh data টি insert করি।



এরপর আমাদের project এর res/layout folder এ যাব এবং main.xml file টি open করব।
main.xml এর code টুকু মুছে ফেলি এবং নিচের code টুকু copy করি

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <Button android:id="@+id/textColorButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Change Text Color"/>

</LinearLayout>

এবার আমরা src\com.PL\PLActivity file টি অপেন করি(PL হল project name)।
package com.PL;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;



import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Toast;

import android.app.ListActivity;
public class PLActivity extends ListActivity {
    /** Called when the activity is first created. */
    JSONArray jArray;
    String result=null;
    InputStream is = null;
    StringBuilder sb=null;
      String cityName ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       final Button changeButton = (Button) findViewById(R.id.textColorButton);
       
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
   
      try{
           HttpClient httpclient = new DefaultHttpClient();
           HttpPost httppost = new HttpPost("http://10.0.2.2/Test.php");
           httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
           HttpResponse response = httpclient.execute(httppost);
           HttpEntity entity = response.getEntity();
           is = entity.getContent();
           }catch(Exception e){
               Log.e("log_tag", "Error in http connection"+e.toString());
          }
      //convert response to string
      try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
             sb = new StringBuilder();
             sb.append(reader.readLine() + "\n");
             String line="0";
             while ((line = reader.readLine()) != null) {
                            sb.append(line + "\n");
              }
              is.close();
              result=sb.toString();
              }
      catch(Exception e){
                    Log.e("log_tag", "Error converting result "+e.toString());
              }
      //paring data
   
      try{
            jArray = new JSONArray(result);
            JSONObject json_data=null;
            for(int i=0;i<jArray.length();i++){
                   json_data = jArray.getJSONObject(i);
                   cityName =json_data.getString("countryName");
                  
                   Toast.makeText(getBaseContext(), "Country Foun Found" ,Toast.LENGTH_LONG).show();
                   changeButton.setText(cityName);
            }
            catch(JSONException e1){
                Toast.makeText(getBaseContext(), "No City Found" ,Toast.LENGTH_LONG).show();
            } catch (ParseException e1) {
                  e1.printStackTrace();
          }
      }

    }


এবার project run করুন।আশা করি কাজ করবে।
যদি কোন problem হয় তাহলে mail করুন sajolsaha01494@gmail.com