1

I am writing an app in which I need to update data using PHP MySQL, and every time I am getting message "Update Data Successfully". But whenever I see into my database, I am not getting any changes in values.

Logcat says:

  09-04 12:00:50.176: D/gralloc_goldfish(538): Emulator without GPU emulation detected.
09-04 12:08:38.646: D/InputEventConsistencyVerifier(538): KeyEvent: ACTION_UP but key was not down.
09-04 12:08:38.646: D/InputEventConsistencyVerifier(538):   in com.android.internal.view.menu.ExpandedMenuView@4136ec30
09-04 12:08:38.646: D/InputEventConsistencyVerifier(538):   0: sent at 552986000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_MENU, scanCode=229, metaState=0, flags=0x8, repeatCount=0, eventTime=552986, downTime=552899, deviceId=0, source=0x101 }
09-04 12:08:39.885: D/(538): UserLoginAppointmentActivity txtPhone[before] :: android.widget.EditText@41389238
09-04 12:08:39.885: D/(538): UserLoginAppointmentActivity txtPass[before] :: android.widget.EditText@4138acb0
09-04 12:08:40.205: W/TextLayoutCache(538): computeValuesWithHarfbuzz -- need to force to single run
09-04 12:08:42.976: D/dalvikvm(538): GC_CONCURRENT freed 131K, 3% free 10157K/10375K, paused 6ms+4ms
09-04 12:08:46.357: D/InputEventConsistencyVerifier(538): KeyEvent: ACTION_UP but key was not down.
09-04 12:08:46.357: D/InputEventConsistencyVerifier(538):   in android.widget.EditText@4138acb0
09-04 12:08:46.357: D/InputEventConsistencyVerifier(538):   0: sent at 561313000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=561313, downTime=561190, deviceId=0, source=0x101 }
09-04 12:08:49.746: D/(538): UserLoginAppointmentActivity txtPhone :: android.widget.EditText@41389238
09-04 12:08:49.746: D/(538): UserLoginAppointmentActivity txtPass :: android.widget.EditText@4138acb0
09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity resultServer :: {"StatusID":"1","UserID":"24","Error":"Login Ok"}
09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strStatusID[before] :: 0
09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strUserID[before] :: 0
09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strError[before] :: Unknow Status!
09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strStatusID[after] :: 1
09-04 12:08:50.076: D/(538): UserLoginAppointmentActivity strUserID[after] :: 24
09-04 12:08:50.076: D/(538): UserLoginAppointmentActivity strError[after] :: Login Ok
09-04 12:08:50.105: D/(538): UserLoginAppointmentActivity UserID Intent :: 24
09-04 12:08:51.496: D/dalvikvm(538): GC_CONCURRENT freed 204K, 4% free 10345K/10695K, paused 5ms+5ms
09-04 12:08:55.475: D/(538): sAppointmentID :: 24
09-04 12:08:55.475: D/(538): sAppointmentID :: 53
09-04 12:08:56.166: D/(538): resultServer - getByMemberIDR:: {"UserID":"24","AppointmentID":"53","Type":"Cardiology","Date":"12-09-2013","Time":"22:15","Status":"Pending"}
09-04 12:08:56.166: D/(538): strUserID :: 24
09-04 12:08:56.176: D/(538): strAppointmentID :: 53
09-04 12:08:56.176: D/(538): strType :: Cardiology
09-04 12:08:56.176: D/(538): strDate :: 12-09-2013
09-04 12:08:56.176: D/(538): strTime :: 22:15
09-04 12:11:06.866: D/dalvikvm(538): GC_CONCURRENT freed 278K, 4% free 10459K/10887K, paused 7ms+7ms
09-04 12:15:36.425: D/(538): resultServer - updateData:: {"StatusID":"1","Message":"updated"}
09-04 12:15:37.015: D/dalvikvm(538): GC_CONCURRENT freed 330K, 5% free 10572K/11015K, paused 7ms+9ms

PHP Script:

<?php
$objConnect = mysql_connect("localhost","root","");
$objDB = mysql_select_db("android");

$strUserID = $_POST["sUserID"];
$strAppointmentID = $_POST["sAppointmentID"];

$strType = $_POST["sType"];
$strDate = $_POST["sDate"];
$strTime = $_POST["sTime"];

/*** Update ***/
$strSQL = " UPDATE book_appointment SET 
Type = '".$strType."',
Date = '".$strDate."',
Time = '".$strTime."' 
WHERE AppointmentID = '".$strAppointmentID."' ";

$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
     $arr['StatusID'] = "0";
     $arr['Message'] = "Cannot save data!";   
}
else
{
     $arr['StatusID'] = "1";
     $arr['Message'] = "updated";
}
mysql_close($objConnect);
echo json_encode($arr);
?>

UpdateActivity.java:-

public class UpdateActivity extends Activity {

    private static final String tag = null;

        @SuppressLint("NewApi")
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_update);

        // Permission StrictMode
        if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        }

        showInfo();

        // btnSave
        Button btnSave = (Button) findViewById(R.id.btnSave);
        // Perform action on click
        btnSave.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        if(SaveData())
        {
        // When Save Complete
        Intent newActivity = new Intent(UpdateActivity.this,RescheduleActivity.class);
        startActivity(newActivity);
        }
        }
        });


        // btnCancel
        final Button btnCancel = (Button) findViewById(R.id.btnCancel);
        // Perform action on click
        btnCancel.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        Intent newActivity = new Intent(UpdateActivity.this,RescheduleActivity.class);
        startActivity(newActivity);
        }
        });

        }

        public void showInfo()
        {
        // txtMemberID,txtUsername,txtPassword,txtConPassword,txtName,txtEmail,txtTel
        final TextView tUserID = (TextView)findViewById(R.id.txtUserID);
        final TextView tAppointmentID = (TextView)findViewById(R.id.txtAppointmentID);
        final TextView tType = (TextView)findViewById(R.id.txtType);
        final TextView tDate = (TextView)findViewById(R.id.txtDate);
        final TextView tTime = (TextView)findViewById(R.id.txtTime);


        Button btnSave = (Button) findViewById(R.id.btnSave);
        Button btnCancel = (Button) findViewById(R.id.btnCancel);

        String url = "http://10.0.2.2/appointments/getByMemberIDR.php";

        Intent intent= getIntent();
        final String UserID = intent.getStringExtra("UserID");
        final String AppointmentID = intent.getStringExtra("AppointmentID");

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("sUserID", UserID));
        params.add(new BasicNameValuePair("sAppointmentID", AppointmentID));

        String resultServer  = getHttpPost(url,params);
        Log.d(tag, "resultServer - getByMemberIDR:: " + resultServer);

        String strUserID = "";
        String strAppointmentID = "";
        String strType = "";
        String strDate = "";
        String strTime = "";

        JSONObject c;
        try {
        c = new JSONObject(resultServer);

        strUserID = c.getString("UserID");
        Log.d(tag, "strUserID :: " + strUserID);
        strAppointmentID = c.getString("AppointmentID");
        Log.d(tag, "strAppointmentID :: " + strAppointmentID);
        strType = c.getString("Type");
        Log.d(tag, "strType :: " + strType);
        strDate = c.getString("Date");
        Log.d(tag, "strDate :: " + strDate);
        strTime = c.getString("Time");
        Log.d(tag, "strTime :: " + strTime);

        if(!strUserID.equals(""))
        {
        tUserID.setText(strUserID);
        tAppointmentID.setText(strAppointmentID);
        tType.setText(strType);
        tDate.setText(strDate);
        tTime.setText(strTime);     
        }
        else
        {
        tUserID.setText("====");
        tAppointmentID.setText("====");
        tType.setText("====");
        tDate.setText("====");
        tTime.setText("====");
        btnSave.setEnabled(false);
        btnCancel.requestFocus();
        }

        } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }        
    }


        public boolean SaveData()
        {
        // txtMemberID,txtPassword,txtName,txtEmail,txtTel

        final EditText txtType = (EditText)findViewById(R.id.txtType);
        final EditText txtDate = (EditText)findViewById(R.id.txtDate);
        final EditText txtTime = (EditText)findViewById(R.id.txtTime);

        //Dialog
        final AlertDialog.Builder ad = new AlertDialog.Builder(this);

        ad.setTitle("Error! ");
        ad.setIcon(android.R.drawable.btn_star_big_on);
        ad.setPositiveButton("Close", null);

        String url = "http://10.0.2.2/appointments/updateData.php";

        List<NameValuePair> params = new ArrayList<NameValuePair>();

        params.add(new BasicNameValuePair("sType", txtType.getText().toString()));
        params.add(new BasicNameValuePair("sDate", txtDate.getText().toString()));
        params.add(new BasicNameValuePair("sTime", txtTime.getText().toString()));

        String resultServer  = getHttpPost(url,params);
        Log.d(tag, "resultServer - updateData:: " + resultServer);

        /*** Default Value ***/
        String strStatusID = "0";
        String strMessage = "Unknow Status!";

        JSONObject c;
        try {
        c = new JSONObject(resultServer);
        strStatusID = c.getString("StatusID");
        strMessage = c.getString("Message");
        } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }

        // Prepare Save Data
        if(strStatusID.equals("0"))
        {
        ad.setMessage(strMessage);
        ad.show();
        return false;
        }
        else
        {
        Toast.makeText(UpdateActivity.this, "Update Data Successfully", Toast.LENGTH_SHORT).show();
        }        

        return true;
        }

        public String getHttpPost(String url,List<NameValuePair> params) {
        StringBuilder str = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);

        try {
        httpPost.setEntity(new UrlEncodedFormEntity(params));
        HttpResponse response = client.execute(httpPost);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (statusCode == 200) { // Status OK
        HttpEntity entity = response.getEntity();
        InputStream content = entity.getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(content));
        String line;
        while ((line = reader.readLine()) != null) {
        str.append(line);
        }
        } else {
        Log.e("Log", "Failed to download result..");
        }
        } catch (ClientProtocolException e) {
        e.printStackTrace();
        } catch (IOException e) {
        e.printStackTrace();
        }
        return str.toString();
        }        
}
1
  • did you get problem in php OR Android ? Commented Sep 4, 2013 at 9:00

5 Answers 5

3

i am not sure but i think you should need to use below lines in SaveData():

    final TextView tUserID = (TextView)findViewById(R.id.txtUserID);
    final TextView tAppointmentID = (TextView)findViewById(R.id.txtAppointmentID);

so your SavaData() should look like this:

public boolean SaveData()
        {
        final TextView txtUserID = (TextView)findViewById(R.id.txtUserID);
        final TextView txtAppointmentID = (TextView)findViewById(R.id.txtAppointmentID);
        final EditText txtType = (EditText)findViewById(R.id.txtType);
        final EditText txtDate = (EditText)findViewById(R.id.txtDate);
        final EditText txtTime = (EditText)findViewById(R.id.txtTime);

        //Dialog
        final AlertDialog.Builder ad = new AlertDialog.Builder(this);

        ad.setTitle("Error! ");
        ad.setIcon(android.R.drawable.btn_star_big_on);
        ad.setPositiveButton("Close", null);

        String url = "http://10.0.2.2/appointments/updateData.php";

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("sUserID", txtUserID.getText().toString()));
        params.add(new BasicNameValuePair("sAppointmentID", txtAppointmentID.getText().toString()));
        params.add(new BasicNameValuePair("sType", txtType.getText().toString()));
        params.add(new BasicNameValuePair("sDate", txtDate.getText().toString()));
        params.add(new BasicNameValuePair("sTime", txtTime.getText().toString()));

        String resultServer  = getHttpPost(url,params);
        Log.d(tag, "resultServer - updateData:: " + resultServer);

        /*** Default Value ***/
        String strStatusID = "0";
        String strMessage = "Unknow Status!";

        JSONObject c;
        try {
        c = new JSONObject(resultServer);
        strStatusID = c.getString("StatusID");
        strMessage = c.getString("Message");
        } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }

        // Prepare Save Data
        if(strStatusID.equals("0"))
        {
        ad.setMessage(strMessage);
        ad.show();
        return false;
        }
        else
        {
        Toast.makeText(UpdateActivity.this, "Update Data Successfully", Toast.LENGTH_SHORT).show();
        }        

        return true;
        }

As we know you are using UserID and AppointmentID to fetch all appointments, so whenever you are doing changes it requires that particular UserID and AppointmentID to point that row, which you have clicked...may be the reason

please let me know this :)

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

1 Comment

yes you are right, i tried this and worked for me, again your guess helped me :)
0

You missed $ in WHERE statement. Also don't use deprecated mysql_* functions and validate data you're receiving from user!

1 Comment

@Andrain It is an answer for given problem. This query will not work without correcting variable.
0
/*** Update ***/
$strSQL = " UPDATE book_appointment SET 
Type = '".$strType."',
Date = '".$strDate."',
Time = '".$strTime."' 
WHERE AppointmentID = '".strAppointmentID."' ";

$strAppointmentID

Comments

0

What is happening is "Error" is not there in PHP of yours, its "Message". So it is going to exception in the try catch module.

Change strMessage = c.getString("Error"); to strMessage = c.getString("Message");

That's it..THen it will work..

4 Comments

Ok, but now what is the logcat showing? Because the above mentioned exception will be resolved by replacing as i said..
yeah sure, i updated my logcat please check now, still not able to update data, not getting what i am missing and where, thanks for supporting
As i see, it is returning true from php means mysql query is working and that means the data is inserting from the php code. I can't see where the error is coming from then. Atleast the android side looks clean to me.
same here that's why i am getting confuse, because i am not getting any changes in database
0

For the PHP

$strUserID = $_POST["sUserID"];
$strAppointmentID = $_POST["sAppointmentID"];

$strType = $_GET["sType"];
$strDate = $_GET["sDate"];
$strTime = $_GET["sTime"];

$strSQL = 'UPDATE book_appointment 
           SET 
              Type = "'.$strType.'",
              Date = "'.$strDate.'",
              Time = "'.$strTime.'" 
           WHERE AppointmentID = "'.$strAppointmentID.'"';

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.