2017-04-02 87 views
-3

我想檢索多個元組形式在MySQL中的表。我正在使用同樣的排球。我想將收到的數據附加到textview。我收到一個Volley.Server錯誤。 的截擊和JSON請求的代碼如下無法從數據庫檢索數據使用凌空

private void active1(){ 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, JSON_URL, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        Toast.makeText(bossmain.this, response, Toast.LENGTH_LONG).show(); 
        showJSON(response); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Toast.makeText(bossmain.this,error.toString(),Toast.LENGTH_LONG).show(); 
       } 
      }){ 
     @Override 
     protected Map<String,String> getParams(){ 
      Map<String,String> params = new HashMap<String, String>(); 
      params.put(KEY_USERNAME,usernameb); 
      params.put(KEY_ACTIVE,active); 
      return params; 
     } 
    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(stringRequest); 
} 

private void showJSON(String response){ 
    String name=""; 
    try { 
     JSONObject jsonObject = new JSONObject(response); 
     JSONArray result = jsonObject.getJSONArray("workers"); 
     for(int i=0;i<result.length();i++) { 
      JSONObject worker = result.getJSONObject(i); 
      name = worker.getString("username"); 
      lv.append(name+"\n"); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

} 

我已經使用PHP對於其代碼如下腳本:

<?php 
    $bossname =$_POST['username']; 
    $active =$_POST['active']; 

    require_once('dbConnect.php'); 

    $sql=mysqli_query($conn,"SELECT username FROM Employee WHERE bossname='$bossname' AND active='$active'"); 
    if($sql){ 
while($row=mysqli_fetch_assoc($sql)){ 
    $workers[]=$row; 
} 
print(json_encode($workers[])); 
    } 
    mysqli_close($con); 
    ?> 

所有建議都歡迎。謝謝。

回答

0

嘗試在你的PHP API代碼更改爲:

$res = array(); 
while($row = mysqli_fetch_array($sql)){ 
    array_push($res, array(
    "username"=>$row['workers']['username'] 
    )); 
    } 

echo json_encode($res, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_ERROR_UTF8); 

和你showJSON方法smthng像:

private void showJSON(String response){ 
JSONObject jsonObject=null; 
    try { 
     jsonObject = new JSONObject(response); 
     JSONArray result = jsonObject.getJSONArray("workers"); 
     workers = new String[result.length()]; 

     for(int i=0;i<result.length();i++) { 
      JSONObject worker = result.getJSONObject(i); 
      workers[i] = worker.getString("username"); 

     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

}