2017-09-02 168 views
-1

下面的代碼獲取我的Android SQLite數據庫中的所有行並將其轉換爲JSON數組。現在我想用PHP將JSON數組存儲到我的在線數據庫中。我該怎麼辦?請幫忙。如何從android studio發送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」中,但現在我的問題是如何將值插入到我的聯機數據庫中。順便說一下,在我的PHP代碼中,這裏是我將JSONArray存儲爲字符串的位置:

$data = $_POST["data"]; 

更新:我已經做到了!感謝您的注意和回答我的問題

回答

0

我會給你一些一般的指導。在HTTP調用上發送JSON會變得很奇怪,因爲它可以包含對HTTP特殊的字符。爲了解決這個問題,在Android上使用Base 64編碼JSON並使用PHP解碼。

我假設你可以弄清楚如何用Java進行base64編碼。

在PHP上,您將獲得原始的JSON。

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

我很抱歉,但我不知道如何base64與Java編碼。我還是個初學者。你能告訴我如何通過PHP將我的Android SQLite數據庫的值發送到在線數據庫嗎? – EDGE