发送id然后获取与volley和php的注册数据

时间:2017-12-12 05:12:52

标签: php android android-volley

我使用凌空方法。我想通过php发布id然后从我的服务器数据库获取注册数据。

StringRequest stringRequest=new StringRequest(Request.Method.POST, URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    System.out.println(response);
                    Toast.makeText(turbine.this, "تبریک", Toast.LENGTH_LONG).show();

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(turbine.this, "خطای اتصال به شبکه", Toast.LENGTH_LONG).show();
                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params=new HashMap<String, String>();

            params.put("ID", idExtra);


            return params;
        }

    };


    StringRequest stringRequest2=new StringRequest(Request.Method.GET, URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONArray array=new JSONArray(response);
                        for (int i=0; i < array.length(); i++) {
                            JSONObject product=array.getJSONObject(i);

                            String s1=product.getString("section");
                            EditText q1=findViewById(R.id.alib1);
                            q1.setText(s1);

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });
    com.android.volley.RequestQueue requestQueue=Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);
    Volley.newRequestQueue(this).add(stringRequest2);

PHP:

 <?php

 include 'dbconfig.php';

  $ID = $_POST['ID']; ;


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
}


$sql = "SELECT * FROM turbine_table where id = $ID" ;
$result = $conn->query($sql);
if ($result->num_rows >0) {
 while($row[] = $result->fetch_assoc()) {
 $tem = $row;
 $json = json_encode($tem);
 }
} else {
 echo "No Results Found.";
}
 echo $json;
$conn->close();

?>

实际上是我的&#34;凌空发布方法&#34;应该将id发布到php然后&#34; volley get method&#34;应该从PHP获取数据。但它决定了:(。我认为我的问题是有两个截击请求,我认为这是来自php的发布ID,因为当我在$ ID中设置一个数字时,它可以工作。

1 个答案:

答案 0 :(得分:0)

我找到了。我的方式错了。我必须在&#34; post方法&#34;中获取数据。 。真的不需要使用get方法:)

StringRequest stringRequest=new StringRequest(Request.Method.POST, URLS.supervisor_turbin,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    System.out.println(response);
                    Toast.makeText(turbine.this, "تبریک", Toast.LENGTH_LONG).show();
                    try {
                        JSONArray array=new JSONArray(response);
                        for (int i=0; i < array.length(); i++) {
                            JSONObject product=array.getJSONObject(i);

                            String s1=product.getString("section");
                            EditText q1=findViewById(R.id.alib1);
                            q1.setText(s1);

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



                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(turbine.this, "خطای اتصال به شبکه", Toast.LENGTH_LONG).show();
                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params=new HashMap<String, String>();

            params.put("ID", idExtra);


            return params;
        }

    };