Android Volley: выберите данные из базы данных MySQL по идентификатору, указанному пользователем


Я пишу простое приложение для Android, используя Залп . Я хотел бы знать, как выбрать имя и фамилию из базы данных MySQL по идентификатору , который пользователь вводит в редактируемый текст в приложении . Это мой PHP-скрипт:

 <?php
    include 'connection.php';

    global $connect;
    $id = $_POST["id"];

    $query = "SELECT firstName, lastName FROM users WHERE id = '$id'";

    $result = mysqli_query($connect, $query);
    $number_of_rows = mysqli_num_rows($result);

    $response = array();

    if($number_of_rows > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            $response[] = $row;
        }
    }

    header('Content-Type: application/json');
    echo json_encode(array("users"=>$response));
    mysqli_close($connect);

?>

Если я указал идентификатор в коде, он возвращает данные в формате JSON, которые я требую, поэтому скрипт и база данных в порядке. Ответ, который я получаю за $id=1, таков:

{"users":[{"firstName":"Jonash","lastName":"Corvin"}]}

И это мой кодекс Запрос строки:

    StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        try {
            JSONArray jsonArray = new JSONArray(response);
            JSONObject jsonObject = jsonArray.getJSONObject(0);

            String firstName = jsonObject.getString("firstName");
            String lastName = jsonObject.getString("lastName");

            firstNameTV.setText(firstName);
            lastNameTV.setText(lastName);

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Toast.makeText(MainActivity.this, "Something went wrong",Toast.LENGTH_LONG).show();
        error.printStackTrace();
    }
}) {
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String,String> parameters = new HashMap<String, String>();
        parameters.put("id", idEditText.getText().toString());
        return parameters;
    }
    };
queue.add(stringRequest);

К сожалению, это ничего не дает... Он даже не показывает никаких ошибок или всплывающих сообщений. Вы знаете, как это исправить?

Author: Corgan, 2017-05-06

1 answers

{"пользователи":[{"Имя": "Йонаш", "Фамилия": "Корвин"}]}

В соответствии с заданным JSON вам нужно проанализировать JSON следующим образом:

JSONObject jsonobject = new JSONObject(response);
JSONArray jsonarray = jsonobject.getJSONArray("users");
JSONObject data = jsonArray.getJSONObject(0);

String firstName = data.getString("firstName");
String lastName = data.getString("lastName");
 4
Author: jagapathi, 2017-11-09 13:51:24