2014-09-13 3 views
0

Я работаю в Android, выполняя проект управления посещением учащихся в андроиде, базу данных mysql и php для подключения db и переднего плана android. Я пробовал все кодирование. Но я не знаю, как обновлять таблицы в базе данных, связанные с php.кодирование для обновления базы данных в mysql с помощью php и android с использованием JSON-анализатора

Вот код:

package com.example.spinnerproject; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class Update extends Activity { 

    EditText txtName; 
    EditText txtPrice; 
    EditText txtDesc; 
    EditText txtCreatedAt; 
    Button btnSave; 
    Button btnDelete; 

    String pid; 

    // Progress Dialog 
    private ProgressDialog pDialog; 

    // JSON parser class 
    JSONParser jsonParser = new JSONParser(); 

    // single product url 
    private static final String url_product_detials =        "http://192.168.11.112/logesh/notificaion1.php"; 

    // url to update product 
    private static final String url_update_product = "http://192.168.11.112/logesh/insert.php"; 

    // url to delete product 
    //private static final String url_delete_product = "http://10.0.2.2/android_connect/delete_product.php"; 

    // JSON Node names 
    private static final String TAG_SUCCESS = "success"; 
    private static final String TAG_PRODUCT = "product"; 
    private static final String TAG_PID = "pid"; 
    private static final String TAG_NAME = "name"; 
    private static final String TAG_PRICE = "price"; 
    private static final String TAG_DESCRIPTION = "description"; 

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

     // save button 
     btnSave = (Button) findViewById(R.id.btnSave); 
     //btnDelete = (Button) findViewById(R.id.btnDelete); 

     // getting product details from intent 
     Intent i = getIntent(); 

     // getting product id (pid) from intent 
     pid = i.getStringExtra(TAG_PID); 

     // Getting complete product details in background thread 
     new GetProductDetails().execute(); 

     // save button click event 
     btnSave.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // starting background task to update product 
       new SaveProductDetails().execute(); 
      } 
     }); 

     // Delete button click event 
     //btnDelete.setOnClickListener(new View.OnClickListener() { 

      //@Override 
      //public void onClick(View arg0) { 
       // deleting product in background thread 
       //new DeleteProduct().execute(); 
      //} 
    // }); 

    } 

    /** 
    * Background Async Task to Get complete product details 
    * */ 
    class GetProductDetails extends AsyncTask<String, String, String> { 

     /** 
     * Before starting background thread Show Progress Dialog 
     * */ 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(Update.this); 
      pDialog.setMessage("Loading product details. Please wait..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     /** 
     * Getting product details in background thread 
     * */ 
     protected String doInBackground(String... params) { 

      // updating UI from Background Thread 
      runOnUiThread(new Runnable() { 
       public void run() { 
        // Check for success tag 
        int success; 
        try { 
         // Building Parameters 
         List<NameValuePair> params = new ArrayList<NameValuePair>(); 
         params.add(new BasicNameValuePair("pid", pid)); 

         // getting product details by making HTTP request 
         // Note that product details url will use GET request 
         JSONObject json = jsonParser.makeHttpRequest(
           url_product_detials, "GET", params); 

         // check your log for json response 
         Log.d("Single Product Details", json.toString()); 

         // json success tag 
         success = json.getInt(TAG_SUCCESS); 
         if (success == 1) { 
          // successfully received product details 
          JSONArray productObj = json 
            .getJSONArray(TAG_PRODUCT); // JSON Array 

          // get first product object from JSON Array 
          JSONObject product = productObj.getJSONObject(0); 

          // product with this pid found 
          // Edit Text 
          txtName = (EditText) findViewById(R.id.inputName); 
          txtPrice = (EditText) findViewById(R.id.inputPrice); 
          txtDesc = (EditText) findViewById(R.id.inputDesc); 

          // display product data in EditText 
          txtName.setText(product.getString(TAG_NAME)); 
          txtPrice.setText(product.getString(TAG_PRICE)); 
          txtDesc.setText(product.getString(TAG_DESCRIPTION)); 

         }else{ 
          // product with pid not found 
         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }); 

      return null; 
     } 


     /** 
     * After completing background task Dismiss the progress dialog 
     * **/ 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog once got all details 
      pDialog.dismiss(); 
     } 
    } 

    /** 
    * Background Async Task to Save product Details 
    * */ 
    class SaveProductDetails extends AsyncTask<String, String, String> { 

     /** 
     * Before starting background thread Show Progress Dialog 
     * */ 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(Update.this); 
      pDialog.setMessage("Saving product ..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     /** 
     * Saving product 
     * */ 
     protected String doInBackground(String... args) { 

      // getting updated data from EditTexts 
      String name = txtName.getText().toString(); 
      String price = txtPrice.getText().toString(); 
      String description = txtDesc.getText().toString(); 

      // Building Parameters 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair(TAG_PID, pid)); 
      params.add(new BasicNameValuePair(TAG_NAME, name)); 
      params.add(new BasicNameValuePair(TAG_PRICE, price)); 
      params.add(new BasicNameValuePair(TAG_DESCRIPTION, description)); 

      // sending modified data through http request 
      // Notice that update product url accepts POST method 
      JSONObject json = jsonParser.makeHttpRequest(url_update_product, 
        "POST", params); 

      // check json success tag 
      try { 
       int success = json.getInt(TAG_SUCCESS); 

       if (success == 1) { 
        // successfully updated 
        Intent i = getIntent(); 
        // send result code 100 to notify about product update 
        setResult(100, i); 
        finish(); 
       } else { 
        // failed to update product 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 


     /** 
     * After completing background task Dismiss the progress dialog 
     * **/ 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog once product uupdated 
      pDialog.dismiss(); 
     } 
    } 

} 
+0

Вам нужно добавить код, который вы пытались таким образом мы Hame что-то вам помочь вам с – SuperDJ

+0

есть многие учебники, как это сделать, как [это] (http://www.tutorialspoint.com/android/android_php_mysql.htm) и [это] (http://www.androidhive.info/2012/05/how-to- connect-android-with-php-mysql /) и добавьте код, который вы пробовали, чтобы помочь u. –

+0

Я знаю, что это не совсем то, что хочет OP, но вы можете использовать ['Parse.com'] (http://www.parse.com) для размещения ваших данных о студентах. С ним работать гораздо проще. –

ответ

0

сделать запрос HTTP с андроида для обновления данных MYSQL