Aamir
Aamir

Reputation: 141

How to get values from mysql database using php script in android

i can not fetch data from mysql database. i maked an android app which connect to mysql db and fetch data using php script.... when i run code it throws exception string cannot convert to jsonarray.... Also guide me where i put my php script in XAMP PHP script:

$con = mysql_connect("localhost","root","");
 if (!$con)
 {
   die('Could not connect: ' . mysql_error());
 }
 mysql_select_db("login",$con);
 $sql=mysql_query("SELECT * FROM category ORDER BY `category`.`category` ASC");
 while($row=mysql_fetch_assoc($sql))
 $output[]=$row;
  print(json_encode($output));
  mysql_close($con);

Code:-

tv=(TextView)findViewById(R.id.textView1);
    String result = null;
    InputStream is = null;
    StringBuilder sb = null;
    ArrayList nameValuePairs = new ArrayList();
    List r = new ArrayList();
    try{
    //http post
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://ip../xampp/htdocs/db.php");
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    is = entity.getContent();
    }
    catch(Exception e){
    Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
    }
    //Convert response to string
    try
    {
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
    sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null)
    {
    sb.append(line +"\n");
    }
    is.close();
    result = sb.toString();
    }
    catch(Exception e)
    {
    Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
    }
    //END Convert response to string
    try{
    JSONArray jArray = new JSONArray(result);
    JSONObject json_data=null;
    for(int i=0;i<jArray.length();i++) {
    json_data = jArray.getJSONObject(i);
    tv.append(json_data.getString("category").toString()+"\n");
    }

    }
    catch(JSONException e1){
    Toast.makeText(getBaseContext(),e1.toString() ,Toast.LENGTH_LONG).show();
    } catch (ParseException e1) {
    Toast.makeText(getBaseContext(),e1.toString() ,Toast.LENGTH_LONG).show();
    }

Upvotes: 2

Views: 5093

Answers (1)

Ankit Dhadse
Ankit Dhadse

Reputation: 1584

The method to fetch value from mysql through php to android is as below:

Suppose you have a login Activity

User enter Username and Password. now catch both value and send to php script. the android code for it is as below:

btnlogin.setOnClickListener(new View.OnClickListener()
        {
                public void onClick(View v)
            {   

                        uname=username.getText().toString();
                        upass=password.getText().toString();
                        HttpClient client = new DefaultHttpClient();

                        tem="http://10.0.2.2:80/verify-login.php?username="+uname+"&password="+upass;
                        HttpGet request = new HttpGet(tem);
                        try
                        {
                            HttpResponse response=client.execute(request);
                            HttpEntity entity=response.getEntity();
                            InputStream is=entity.getContent();
                            InputStreamReader isr = new InputStreamReader(is);
                            BufferedReader reader = new BufferedReader(isr);
                            result=reader.readLine();   
                        } 

                        catch (Exception e)
                        {
                            e.printStackTrace();
                        }

                        if(result.equals("0")==true)
                        {
                            Toast.makeText(getApplicationContext(), "Sorry try again", 1500).show();

                        }
                        else
                        {
                            Toast.makeText(getApplicationContext(), "Welcome Client", 1500).show();
                            myIntent=new Intent(login_page.this,Welcome_page.class);

                        }
                    }

        });

At the php script side. the code to fetch value from database and return to android is as below:

<?php

    mysql_connect("localhost","root","") or die(mysql_error());
    mysql_select_db("login") or die(mysql_error());

    $username=$_REQUEST['username'];
    $password=$_REQUEST['password'];
    $SelectQuery="select * from EmpLogin where C_Username='$username' and C_Password='$password'";
    $result=mysql_query($SelectQuery) or die(mysql_error());

    $count=mysql_num_rows($result);
    $row=mysql_fetch_array($result);
    if($count==0)
        echo "0";
    else
        echo $row['c_id'];
?>

This way you can fetch the value from DB and send back to android. hope this helps you. If you have any doubt then do ask me anytime.

Upvotes: 1

Related Questions