2017-04-02 21 views
-3

MySQLのテーブルから複数のタプルを取得します。私は同じためにボレーを使用しています。私は受け取ったデータをテキストビューに追加したい。私はVolley.Serverエラーを取得します。ボレーを使用してデータベースからデータを取得できません

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(); 
    } 

} 

を次のように ボレーのためのコードとJSONの要求がある私は、そのコードは次のようであるスクリプトの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); 
    ?> 

すべての提案を歓迎いたします。ありがとうございました。あなたのPHPのAPIコードに変更する

答えて

0

試してみてください。

$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(); 
    } 

} 
関連する問題