【问题标题】:Cannot retrieve data from database using volley无法使用 volley 从数据库中检索数据
【发布时间】:2017-08-27 05:45:01
【问题描述】:

我想从 MySQL 中的一个表中检索多个元组。我正在使用凌空抽射。我想将收到的数据附加到文本视图。我收到 Volley.Server 错误。 volley和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);
    ?>

欢迎所有建议。谢谢。

【问题讨论】:

    标签: php android mysql json android-volley


    【解决方案1】:

    尝试将您的 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 方法类似:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2018-07-09
      相关资源
      最近更新 更多