Отправить массив json для добавления нескольких записей в mysql в скрипт php с помощью залпа в android

Я пытаюсь добавить несколько записей в базу данных, я отправляю массив json, используя метод строкового запроса в залпе в android, в скрипт php, чтобы добавить эти записи, но не получаю результат массива json в php. Я просто хочу добавить несколько записей в mysql, поэтому отправка массива json в скрипт для добавления этих записей путем извлечения всех данных в нем

Вот функция вставки данных

private void InsertData() {

if (arrayList.size()>0) {
Toast.makeText(getApplicationContext(), "list not null "+i+arrayList.size(), 
 Toast.LENGTH_LONG).show();

//for (i=0;i<arrayList.size();i++) {
    //Toast.makeText(getApplicationContext(),"inside for loop", Toast.LENGTH_LONG).show();


    StringRequest stringRequest = new StringRequest(Request.Method.POST,
            Constants.insert_macthes,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    try {
                        JSONObject jsonObject = new JSONObject(response);


                        if (jsonObject.getInt("success") == 1) {

                            Toast.makeText(getApplicationContext(), jsonObject.getString("message"), Toast.LENGTH_LONG).show();

                        } else

                            Toast.makeText(getApplicationContext(), "not added", Toast.LENGTH_LONG).show();

                        dis = jsonObject.getString("message");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }


            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    if (error instanceof TimeoutError || error instanceof NoConnectionError) {
                        Toast.makeText(MyMatchas.this,
                                "Error time out",
                                Toast.LENGTH_LONG).show();
                    } else if (error instanceof AuthFailureError) {
                        //TODO
                        Toast.makeText(MyMatchas.this,
                                "Auth Error time out",
                                Toast.LENGTH_LONG).show();
                    } else if (error instanceof ServerError) {
                        //TODO
                        Toast.makeText(MyMatchas.this,
                                "Server Error time out",
                                Toast.LENGTH_LONG).show();
                    } else if (error instanceof NetworkError) {
                        //TODO
                        Toast.makeText(MyMatchas.this,
                                " Network Error time out",
                                Toast.LENGTH_LONG).show();
                    } else if (error instanceof ParseError) {
                        Toast.makeText(MyMatchas.this,
                                "Parse Error time out",
                                Toast.LENGTH_LONG).show();
                        //TODO
                    }

                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            JSONArray array=new JSONArray();

            JSONObject jsonObject=new JSONObject();
            for(i=0;i<arrayList.size();i++)
            {
                Log.v("fetching record:",arrayList.get(i).getId());
                arr[i] = "dog_id"+arrayList.get(i).getId()+"dog_name"+arrayList.get(i).getDog_name()+"score"+arrayList.get(i).getDog_score()+"user_id"+ String.valueOf(SharedPrefManager.getInstance(MyMatchas.this).getUserid());
                try {
                    //Log.v("put in json:",arrayList.get(i).getId());
                    jsonObject.put("dog_id",arrayList.get(i).getId());
                    jsonObject.put("dog_name",arrayList.get(i).getDog_name());
                    jsonObject.put("score",arrayList.get(i).getDog_score());
                    jsonObject.put("user_id",String.valueOf(SharedPrefManager.getInstance(MyMatchas.this).getUserid()));

                } catch (JSONException e) {
                    Log.v("error exceptiion:",arrayList.get(i).getId());
                    e.printStackTrace();
                }
                array.put(jsonObject);
            }
            HashMap<String ,String> params=new HashMap<String, String>();
            Log.v("All data:",jsonObject.toString());
            Log.v("json object data:",array.toString());
            params.put("params",array.toString());

            return params;
        }
    };


    // Creating RequestQueue.
    RequestQueue requestQueue = Volley.newRequestQueue(MyMatchas.this);

    // Adding the StringRequest object into requestQueue.
    requestQueue.add(stringRequest);

    // }
  // Toast.makeText(getApplicationContext(),dis,Toast.LENGTH_LONG).show();

 }

Вот скрипт Php

   <?php
 $con=mysqli_connect("localhost","m","rt","Friend");

 if ($_SERVER['REQUEST_METHOD']=='POST'){

$arr = $_POST['params'];





 $json = json_decode($arr,true);
    echo $json;
foreach($json as $obj){

$Sql_Query = "INSERT INTO Match_list (dog_id,score,dog_name,User_ID) values 
   ('$obj->dog_id','$obj->dog_name','$obj->score','$obj->user_id')";

   if ($con->query($Sql_Query) === TRUE)
   {

    die(json_encode(array("success"=>1,"message"=>"Data Added 
 Successfuly")));



   }


      }


   }

  mysqli_close($con);
 ?>

Это потому, что запрос не выполняется и никогда не разрешается в true. "INSERT INTO Match_list (dog_id, score, dog_name, User_ID) values ​​('$ obj-> dog_id', '$ obj-> dog_name', '$ obj-> score', '$ obj-> user_i‌ d')» по-прежнему остается строкой без подстановки. Попробуйте обернуть свои переменные в {} ...VALUES ('{$obj->dog_id}', '{$obj->dog_name}'... или объединить их вместо ...VALUES'. $obj->dog_id . "', '". $obj->dog_name ."...

Kyle Domingo 03.05.2018 09:21

Обязательно проверьте свой запрос, распечатав его и попробовав вручную в своем sql-клиенте.

Kyle Domingo 03.05.2018 09:22

Тем не менее та же проблема не с получением данных, пожалуйста, помогите мне, а также только последние данные списка в arraylist находятся в массиве json, который я видел с помощью сообщения журнала в android

noman baig 03.05.2018 09:45

Каков результат echo $Sql_Query после строки $Sql_Query = "INSERT INTO...?

Kyle Domingo 03.05.2018 09:56

Я пробовал вручную добавлять данные, но я думаю, что он не получает массив json из метода запроса строки android volley, а также я проверил в массиве json, что квадратная скобка [] не находится в массиве json, исходящем от android

noman baig 03.05.2018 10:14

пожалуйста, помогите мне, я застрял, не знаю, что делать

noman baig 03.05.2018 10:28

Каков результат echo $ Sql_Query после строки $ Sql_Query = "INSERT INTO ...?"

Kyle Domingo 04.05.2018 11:48
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
845
2

Ответы 2

Вам нужно каждый раз создавать новый объект для хранения новых значений

 JSONArray array = new JSONArray();
 JSONObject jsonObject;
 GettingVaccineData gettingVaccineData;
 for (int i = 0; i < vaccineData.size(); i++) {
   jsonObject = new JSONObject();
   gettingVaccineData = vaccineData.get(i);
   try {

     jsonObject.put("LCID", reqResponse);
     jsonObject.put("LVID", gettingVaccineData.getID());
     jsonObject.put("LVNAME", gettingVaccineData.getNAME());
     jsonObject.put("LSCHEDULE", scheduleDays.get(i));
     jsonObject.put("LGIVEN", "NULL");
     jsonObject.put("LSTATUS", "not given");
     jsonObject.put("LHOSPITAL", "NULL");


   } catch (JSONException e) {
     e.printStackTrace();
   }
   array.put(jsonObject);

Вы можете получить доступ к таким значениям:

echo $json[0]["dog_id"];

Другие вопросы по теме