2017-09-02 17 views
-1

以下のコードは、Android SQLiteデータベースのすべての行を取得し、JSON配列に変換します。今では、PHPを使用してJSON配列を取得して、オンラインデータベースに格納したいと考えています。私は何をすべきか?助けてください。アンドロイドスタジオからJSON配列出力をPHPに送信する

これは私が使用するコードです:

private JSONArray getResults() 
{ 

    String myPath = this.getDatabasePath("cart.db").toString();// Set path to your database 

    String myTable = CartContract.CartEntry.TABLE_NAME;//Set name of your table 

    SQLiteDatabase myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); 

    String searchQuery = "SELECT * FROM " + myTable; 
    Cursor cursor = myDataBase.rawQuery(searchQuery, null); 

    JSONArray resultSet  = new JSONArray(); 

    cursor.moveToFirst(); 
    while (cursor.isAfterLast() == false) { 

     int totalColumn = cursor.getColumnCount(); 
     JSONObject rowObject = new JSONObject(); 

     for(int i=0 ; i< totalColumn ; i++) 
     { 
      if(cursor.getColumnName(i) != null) 
      { 
       try 
       { 
        if(cursor.getString(i) != null) 
        { 
         Log.d("TAG_NAME", cursor.getString(i)); 
         rowObject.put(cursor.getColumnName(i) , cursor.getString(i)); 
        } 
        else 
        { 
         rowObject.put(cursor.getColumnName(i) , ""); 
        } 
       } 
       catch(Exception e) 
       { 
        Log.d("TAG_NAME", e.getMessage() ); 
       } 
      } 
     } 
     resultSet.put(rowObject); 
     cursor.moveToNext(); 
    } 
    cursor.close(); 
    Log.d("FINAL RESULT", resultSet.toString()); 
    return resultSet; 
} 

これが出力されます:

FINAL RESULT: [{"id":"1","food_id":"52","food_price":"30","food_name":"Pink Lemonade","quantity":"5","amount":"150","special_request":""},{"id":"2","food_id":"51","food_price":"30","food_name":"House Blend Iced Tea","quantity":"3","amount":"90","special_request":""}] 

と私はここで、これらの値を入れたい:(オンラインデータベース) attached picture

私はそれをどうすればいいのですか?

更新:私は既にJSONArrayの結果を送信し、それを "$ data"に保存しましたが、私の問題は今自分のオンラインデータベースに値を挿入する方法です。私は文字列としてJSONArrayの保管場所ところで、私のPHPコードでは、ここにある:

$data = $_POST["data"]; 

はUPDATE:私はすでにそれを作りました!私の質問に気づき、答えてくれてありがとう

答えて

0

私はあなたにいくつかの一般的なガイドラインを示します。 JSONをHTTP呼び出しで送信すると、HTTP専用の文字が含まれる可能性があるため、奇妙になることがあります。これを回避するには、JSONをAndroidでBase 64でエンコードし、PHPでデコードします。

私はあなたがJavaでbase64エンコードする方法を理解できると仮定します。

PHPでは、元のJSONが返されます。

$originalJson = base64_decode($inputFromAndroid); 
$object = json_decode($originalJson, true); 
// Now you have the data as a PHP array. 
+0

私は大変申し訳ありませんが、Javaでbase64エンコードする方法はありません。私はまだ初心者です。 AndroidのSQLiteデータベースの値をPHP経由でオンラインデータベースに送る方法を教えてください。 – EDGE