0

I am using MySQL database, and I'm selecting my data from database using JSONParser.class I found on the internet, but the value always showing Null, please help, i'm new at this

Here's my main activity class:

public class Profil extends Activity{
    private static String url = "http://10.0.2.2/koperasidb/tampil_profil.php";
    private static final String TAG_ANGGOTA = "anggota";
    private JSONParser jsonParser;
    private JSONObject json;
    private JSONArray jArray;

    String kodeanggota;
    private Session session;//global variable 
    private String no_ba,nm,jk,agama,tmptlahir,tgllahir,blnlahir,thnlahir,status,alamat,notelp,email;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        session = new Session(this); //onCreate Session class
        //mengambil string kdanggota
        kodeanggota = session.getkdanggota();

        jsonParser = new JSONParser();
        ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
        postParameters.add(new BasicNameValuePair("kode", kodeanggota));
        //profil = new ArrayList<HashMap<String, String>>();
        try {
            json = jsonParser.makeHttpRequest(url, "POST", postParameters);
            jArray = json.getJSONArray(TAG_ANGGOTA);
            for (int i = 0; i < jArray.length(); i++) {
                JSONObject job = jArray.getJSONObject(i);
                no_ba = job.getString("no_ba");
                nm = job.getString("nama");
                jk = job.getString("jk");
                agama = job.getString("agama");
                tmptlahir = job.getString("tmptlhr");
                tgllahir = job.getString("tgllhr");
                blnlahir = job.getString("blnlhr");
                thnlahir = job.getString("thnlhr");
                status = job.getString("status");
                alamat = job.getString("alamat");
                notelp = job.getString("notelp");
                email = job.getString("email"); 

            }
        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            tampilkanprofil();
        }
    }

    private void tampilkanprofil() {
        TextView profilnama = (TextView) findViewById(R.id.profilnamaanggota);
        profilnama.setText(nm);
        TextView profiljk = (TextView) findViewById(R.id.profiljk);
        profiljk.setText(jk);
        TextView profilnoba = (TextView) findViewById(R.id.profilkodeba);
        profilnoba.setText(no_ba);
        TextView profilagama = (TextView) findViewById(R.id.profilagama);
        profilagama.setText(agama);
        TextView profilttl = (TextView) findViewById(R.id.profilttl);
        profilttl.setText(tmptlahir + ", " + tgllahir + " " + blnlahir + " " + thnlahir);
        TextView profilstatus = (TextView) findViewById(R.id.profilstatus);
        profilstatus.setText(status);
        TextView profilalamat = (TextView) findViewById(R.id.profilalamat);
        profilalamat.setText(alamat);
        TextView profilnotelp = (TextView) findViewById(R.id.profilnotelp);
        profilnotelp.setText(notelp);
        TextView profilemail = (TextView) findViewById(R.id.profilemail);
        profilemail.setText(email);
    }
}

And here's my php file:

<?php
include ("koneksi.php");

$response = array();
$kd=$_POST['kdanggota'];
$result = mysql_query("SELECT * FROM anggota_baru WHERE kd_anggota ='$kd' ") or die(mysql_error());

$response["anggota"] = array();
while($row = mysql_fetch_array($result)){
    $profil = array();
    $profil["no_ba"] = $row["no_ba"];
    $profil["nama"] = $row["nama_lengkap"];
    $profil["jk"] = $row["kelamin"];
    $profil["agama"] = $row["agama"];
    $profil["tmptlhr"] = $row["tempat_lahir"];
    $profil["ttgllhr"] = $row["tgl_lahir"];
    $profil["blnlhr"] = $row["bln_lahir"];
    $profil["thnlhr"] = $row["thn_lahir"];
    $profil["status"] = $row["status_nikah"];
    $profil["alamat"] = $row["alamat"];
    $profil["notelp"] = $row["no_telp"];
    $profil["email"] = $row["email"];

    array_push($response["anggota"],$profil);
}
echo json_encode($response);
?>

here's my logcat error:

05-08 20:20:26.246: WARN/System.err(871): org.json.JSONException: No value for no_ba
05-08 20:20:26.256: WARN/System.err(871):     at org.json.JSONObject.get(JSONObject.java:354)
05-08 20:20:26.256: WARN/System.err(871):     at org.json.JSONObject.getString(JSONObject.java:510)
05-08 20:20:26.256: WARN/System.err(871):     at com.randy.koperasidb.Profil.onCreate(Profil.java:55)
05-08 20:20:26.256: WARN/System.err(871):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-08 20:20:26.266: WARN/System.err(871):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
05-08 20:20:26.266: WARN/System.err(871):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
05-08 20:20:26.266: WARN/System.err(871):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-08 20:20:26.286: WARN/System.err(871):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
05-08 20:20:26.286: WARN/System.err(871):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 20:20:26.296: WARN/System.err(871):     at android.os.Looper.loop(Looper.java:123)
05-08 20:20:26.296: WARN/System.err(871):     at android.app.ActivityThread.main(ActivityThread.java:3647)
05-08 20:20:26.306: WARN/System.err(871):     at java.lang.reflect.Method.invokeNative(Native Method)
05-08 20:20:26.306: WARN/System.err(871):     at java.lang.reflect.Method.invoke(Method.java:507)
05-08 20:20:26.316: WARN/System.err(871):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-08 20:20:26.316: WARN/System.err(871):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-08 20:20:26.327: WARN/System.err(871):     at dalvik.system.NativeStart.main(Native Method)
05-08 20:20:26.346: DEBUG/AndroidRuntime(871): Shutting down VM
05-08 20:20:26.346: WARN/dalvikvm(871): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-08 20:20:26.366: ERROR/AndroidRuntime(871): FATAL EXCEPTION: main
05-08 20:20:26.366: ERROR/AndroidRuntime(871): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.randy.koperasidb/com.randy.koperasidb.Profil}: java.lang.NullPointerException
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.os.Looper.loop(Looper.java:123)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.ActivityThread.main(ActivityThread.java:3647)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at java.lang.reflect.Method.invokeNative(Native Method)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at java.lang.reflect.Method.invoke(Method.java:507)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at dalvik.system.NativeStart.main(Native Method)
05-08 20:20:26.366: ERROR/AndroidRuntime(871): Caused by: java.lang.NullPointerException
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at com.randy.koperasidb.Profil.tampilkanprofil(Profil.java:78)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at com.randy.koperasidb.Profil.onCreate(Profil.java:72)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
05-08 20:20:26.366: ERROR/AndroidRuntime(871):     ... 11 more
05-08 20:20:26.396: WARN/ActivityManager(61):   Force finishing activity com.randy.koperasidb/.Profil
05-08 20:20:26.416: WARN/ActivityManager(61):   Force finishing activity com.randy.koperasidb/.Home
05-08 20:20:26.927: WARN/ActivityManager(61): Activity pause timeout for HistoryRecord{40693400 com.randy.koperasidb/.Profil}
05-08 20:20:28.177: INFO/Process(871): Sending signal. PID: 871 SIG: 9
05-08 20:20:28.207: INFO/ActivityManager(61): Process com.randy.koperasidb (pid 871) has died.
05-08 20:20:28.217: INFO/WindowManager(61): WIN DEATH: Window{406a6770 com.randy.koperasidb/com.randy.koperasidb.login paused=false}
05-08 20:20:28.257: ERROR/InputDispatcher(61): channel '40774e40 com.randy.koperasidb/com.randy.koperasidb.Home (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
05-08 20:20:28.257: ERROR/InputDispatcher(61): channel '40774e40 com.randy.koperasidb/com.randy.koperasidb.Home (server)' ~ Channel is unrecoverably broken and will be disposed!
05-08 20:20:28.327: INFO/WindowManager(61): WIN DEATH: Window{40774e40 com.randy.koperasidb/com.randy.koperasidb.Home paused=true}
05-08 20:20:29.027: WARN/InputManagerService(61): Got RemoteException sending setActive(false) notification to pid 871 uid 10041
5
  • 2
    And your logcat? Where is the NPE? Commented May 8, 2014 at 13:14
  • 1
    Post the logcat error. Commented May 8, 2014 at 13:15
  • jArray may be null. Please double check! Commented May 8, 2014 at 13:19
  • your job JsonObject doesn't have any value for no_ba key. check your JSON data Commented May 8, 2014 at 13:23
  • 05-08 20:20:26.246: WARN/System.err(871): org.json.JSONException: No value for no_ba - no_ba column exists for sure? Commented May 8, 2014 at 13:24

2 Answers 2

1

You are passing parameter from client app with name "kode" in line

postParameters.add(new BasicNameValuePair("kode", kodeanggota));

But you are accepting with name "kdanggota" in line

$kd=$_POST['kdanggota'];

Therefore server is sending empty array and you are not checking either array is empty or not. Please use same name of parameter while sending and receiving data.

Sign up to request clarification or add additional context in comments.

Comments

1

one error I can see without the logcat which is as following;

1 - You have assigned key kode in your BasicNameValuePair while you are trying to fetch 'kdanggota' in you php wile in $_POST which does not exists. So change the fourth line of php as following

`$kd=$_POST['kode'];` //You need to write kode here because that is what is the key for your pair.

Please also post logcat for more information

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.