2017-09-15 12 views
0

databaseに保存するには、arraylistphpに、アンドロイドから読みたいと思いますが、正確なコードは見つかりません。誰でもこの問題を解決する方向で私を導くことができますか?ここでphp:json arraylistを読み、mysqlにデータを保存していますか?

は、私は、サーバーへのArrayListを送信するためにretrofit2を使用していますが、私はここで私がすることができないんだけど、他の質問で見てきたようarraylist

private void loadCart() 
{ 

    productList.clear(); 
    Cursor cursor = dbHelper.getCarProducts(); 
    cursor.moveToFirst(); 
    do { 
     CartProduct cartProduct = new CartProduct(); 
     cartProduct.setProductName("Name: "+cursor.getString(cursor.getColumnIndex("_Name"))); 
     cartProduct.setProductCost("Cost: "+cursor.getString(cursor.getColumnIndex("_Cost"))); 
     cartProduct.setProductPrice("Price: "+cursor.getString(cursor.getColumnIndex("_Price"))); 
     cartProduct.setProductQuantity("Quantity: "+cursor.getString(cursor.getColumnIndex("_Quantity"))); 
     productList.add(cartProduct); 

    }while(cursor.moveToNext()); 


} 

を作成するための私のJavaコードでありますfile_get_contentsのURLを取得しますか?

ここ
+0

あなたのコードを表示してください – Pritamkumar

+0

@PritamkumarこれはJavaであり、私はPHPコード –

+0

から始めることができません。どうしたらいいですか、あなたは名前、 dbに格納します。もしあなたがURのデータをサーバーに送信したいのであれば、Uのようにレトロフィットを使用することができますが、最初にuが私にこのタイプのデータ形式を送ったらそれを受け取るWebサービスがあります。 –

答えて

0

後ほとんど3週間以上の欲求不満とn時間の欲求を捜し求めています。私は最終的に私の問題の解決策を見つけ出し、それを人々と共有しました。(私は別のa/cからブロックされていました。あなたのサーバに配列リストを送るために私たちは別のライブラリを使う必要があり、必要に応じて最適なものはループjによるasync-httpライブラリです。これらはライブラリをインポートして使用するステップですあなたのプログラムで: - )

1)あなたのbulid.gradle(アプリモジュールでこの文を書くことによって、あなたのプロジェクトにライブラリをインポート: -

コンパイル「com.loopj.android:android-async-http :1.4.9'

2)あなたのプログラムでそれらを使用するために、次の変数を作成します -

AsyncHttpClient (a client to send data to your server) 
    RequestPrarms (Data sent to your server for parsing and further operations) 
    String url(Link to your server where actually operations occurs) 

3。)今、私たちはこれらの変数を使用してプログラムを実行します -

P私は、これはやや私はまだデータベースにデータを挿入するために、私のPHPの側を作成しています、あなたの疑問をクリア願ってい

arams.put("OrderSummary", <your array list>); 
      httpClient.post(APIURL.API_URL,params, new AsyncHttpResponseHandler() { 
       @Override 
       public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
        //your operations on success 
       } 

       @Override 
       public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
        Toast.makeText(getApplicationContext(),error.toString(),Toast.LENGTH_LONG).show(); 
       } 
      }); 

0

あなたが行く...

ステップ1:あなたのgradle.app

compile 'com.squareup.retrofit:retrofit:1.9.0' 

ステップ2に換装依存性を追加します。以下のようなRestClientクラスを作成します。

public class RestClient { 
    private static final String BASE_URL = DataConstants.TEST_URL; //Place your web service URL here 
    private ApiInterface apiService; 

    public RestClient() 
    { 
     RequestInterceptor requestInterceptor = new RequestInterceptor() { 
      @Override 
      public void intercept(RequestFacade request) { 

       request.addHeader("Accept", "application/json"); 
      } 
     }; 

     RestAdapter restAdapter = new RestAdapter.Builder() 
       .setLogLevel(RestAdapter.LogLevel.FULL) 
       .setRequestInterceptor(requestInterceptor) 
       .setEndpoint(BASE_URL) 
       .build(); 

     apiService = restAdapter.create(ApiInterface.class); 
    } 

    public ApiInterface getApiService() 
    { 
     return apiService; 
    } 
} 

ステップ3:POST URLのインターフェイスを作成します。

public interface ApiInterface { 
    @POST("/sendData") 
    void sendData(@Body JsonObject jsonObject, 
          Callback<DataModel> dataModelCallback); 
} 

手順4:以下のようにPOJOクラスを作成します。

public class DataModel{ 
    private String success; 

public String getSuccess() { 
     return success; 
    } 

public void setSuccess(String success) { 
     this.success = success; 
    } 

} 

ステップ5:以下のようなあなたのアクティビティからWebサービスを呼び出します。

private void callWebService(String user_id) { 
     try {//TODO SEND 
      final Utility utility = new Utility(this); 
      utility.showProgressDialog(); 
      JsonObject myJsonData = new JsonObject(); 
      myJsonData.addProperty("user_id", user_id); 
      Gson gsonData = new GsonBuilder().create(); 
      JsonArray dataArray = new JsonArray(); 
      dataArray = gsonData.toJsonTree(productList).getAsJsonArray(); //Here you want to add your array list i.e productList 
      myJsonData.add("assign_to", jaAssignee); 

      new RestClient().getApiService().sendData(myJsonData, new Callback<DataModel>() { 
       @Override 
       public void success(DataModel dataModel, Response response) { 
        utility.hideProgressDialog(); 
        try { 
         String success = dataModel.getSuccess(); 
         if (success.equalsIgnoreCase("Success")) { 
          //Do what you want to do 
         } 
        } catch (Exception e) { 
        } 
       } 

       @Override 
       public void failure(RetrofitError error) { 
        utility.hideProgressDialog(); 
       } 
      }); 
     } catch (Exception e) { 
     } 
    } 

希望すると、これが役立ちます。

+0

データベースにデータを格納するために配列/リストを解析するためにPHPスクリプトが必要です –

+0

問題ありません。 –

0

すべてのデータを一度に送信します。 JsonArrayを作成し、各オブジェクトを追加します。アップロードが完了したら、すべてのデータを1つにまとめます。あなたはちょうどPHPでその配列を解読する必要があります。これをされる使用の

利点、あなたは(それが非同期である)非常によく

+0

私にjson配列を解析するためのPHPスクリプトを与えることができます –

+0

どこにでも見つけることができます。 json_decode関数をPHPで検索します。 file_get_contentsのための – The90sArtist

0

を改造における応答を管理することができます

<?php 
    header('Content-type: application/json'); 
    $jsonString = file_get_contents('php://input'); 
    $jsonArray = json_decode($jsonString,true); 

    print_r($jsonArray);/* print array */ 

によってphpjson値を解析することができます?>

+0

はどのリンクが与えられるべきですか? –

+0

'json'データで' android'のデータを期待しているので、リンクは必要ありません – Pritamkumar

+0

arraylistで動作しますか? –

関連する問題