Click here to Skip to main content
15,867,686 members
Please Sign up or sign in to vote.
3.50/5 (2 votes)
dear friends,
this is my first JSON-PHP experience.i'm developing a small application to get user information from an online database. User enters his username and password then press submit button.So application should be able to check whether that user is available or not.

I'm getting an exception saying
"Value null of type org.json.JSONObject$1 cannot be converted to JSONArray"

here is my php script

PHP
<?php

mysql_connect("localhost","tadmin","t2012");
mysql_select_db("tdb");


$sql=mysql_query("SELECT uid,uname FROM tuser WHERE uname ='".$_REQUEST['uname']."' AND password ='".$_REQUEST['password']."'");


while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));

mysql_close();

?>


this is my android code

Java
package com.drock.tbnote;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.nio.Buffer;
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.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;

import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Vibrator;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class incui extends Activity {

private Vibrator Myvib;
private InputStream is; //input steram
String result = ""; //result

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.incui);

Button btnsubmit = (Button) findViewById(R.id.button1);
Button btnview = (Button) findViewById(R.id.button2);
EditText txtuname = (EditText) findViewById(R.id.editText1);
EditText txtpass = (EditText) findViewById(R.id.editText2);
final TextView lbluid = (TextView) findViewById(R.id.textView5);
final TextView lbluname = (TextView) findViewById(R.id.textView6);

        
//creating array list
final ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("uname",txtuname.getText().toString()));	        
nameValuePairs.add(new BasicNameValuePair("password", txtpass.getText().toString()));
	        
	        
Myvib = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);
//Button click event	        
btnsubmit.setOnClickListener(new OnClickListener() {
				
public void onClick(View v) {
Myvib.vibrate(50);
			
					
//connecting http web server
try{
			
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.mysite.org/php/getuser.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
is = entity.getContent();		
				
						
}catch(Exception e1){
Log.e("http", e1.getMessage());
Toast toast=Toast.makeText(getApplicationContext(),"http error: "+e1.getMessage(), Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
					
//reading from server
try{
		
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
		 
while((line = reader.readLine()) != null){
sb.append(line.toString() + "\n");
			 
}
is.close();
result = sb.toString();
						
}catch(Exception e1){
Log.e("http", e1.getMessage());
Toast toast=Toast.makeText(getApplicationContext(),"read error: "+e1.getMessage(), Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
	
//parsing JSON data
int usrid;
String usrname;
try{
		
JSONArray jArray = new JSONArray(result);
JSONObject json_data = new JSONObject();
for(int i=0;i<jArray.length();i++){
	json_data = jArray.getJSONObject(i);
	usrid = json_data.getInt("uid");
	usrname = json_data.getString("uname");
}
Toast toast=Toast.makeText(getApplicationContext(),"Authenticated successfuly", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
		
		
}catch(Exception e1){
Log.e("http", e1.getMessage());
Toast toast=Toast.makeText(getApplicationContext(),"json error: "+e1.getMessage(), Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}

					
					
	
}
});

}

}


can someone please help me to solve my problem?? thanks..
Posted

1 solution

Connect Android application with MySql Databse using PHP

Try this tutorials..

Click Here Tutorial 1

Click Here Tutorial 2

Click Here Tutorial 3
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900