2015-10-10 11 views
0

У меня есть этот код, чтобы поместить некоторые данные в MySQL и работает:Android, Json и залп

insert.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 

        System.out.println(response.toString()); 
       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 

       } 
      }) { 

       @Override 
       protected Map<String, String> getParams() throws AuthFailureError { 
        Map<String,String> parameters = new HashMap<String, String>(); 
        parameters.put("firstName",nome.getText().toString()); 
        parameters.put("lastName",cognome.getText().toString()); 
        parameters.put("age",anni.getText().toString()); 

        return parameters; 
       } 
      }; 
      requestQueue.add(request); 
     } 

    }); 

Но этот код для Recive данных из MySQL не работает, почему?

show.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      System.out.println("ww"); 
      JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showUrl, new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 
        System.out.println(response.toString()); 
        try { 
         System.out.println("fin qui ci siamo"); 
         JSONArray students = response.getJSONArray("students"); 
         for (int i = 0; i < students.length(); i++) { 
          JSONObject student = students.getJSONObject(i); 

          String firstname = student.getString("firstname"); 
          String lastname = student.getString("lastname"); 
          String age = student.getString("age"); 

          result.append(firstname + " " + lastname + " " + age + " \n"); 
         } 
         result.append("===\n"); 

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

       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        System.out.append(error.getMessage()); 

       } 
      }); 
      requestQueue.add(jsonObjectRequest); 
     } 
    }); 

РНР код поместить данные в MySQL является:

<?php 

if($_SERVER["REQUEST_METHOD"]=="POST"){ 
    include 'connection.php'; 
    showStudent(); 
} 

function showStudent(){ 
    global $connect; 

    $query = " Select * FROM STUDENT; "; 

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

    $temp_array = array(); 

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

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

} 

?> 

(Также жаль плохой английский, я итальянский)

+1

Что вы подразумеваете, это не работает? Вы получаете ответ? Если да, можете ли вы обновить код с помощью logcat и json-ответа. –

+0

, когда я нажимаю кнопку, чтобы получить данные: 10-10 18: 13: 39.437 2085-2085/com.example.ale.network I/System.out: ww –

ответ

1

Первый,

Измените свой SQL-запрос с

$query = " Select * FROM STUDENT; "; 

в

$query = "Select * FROM STUDENT"; (Remove semi-colon inside of double quotes) 

Вы уверены, что у вас есть таблица STUDENT?

Второй,

В вашей ключевой пары значений для имени /, вы объявили ключ в качестве firstName при вводе содержания

parameters.put("firstName",nome.getText().toString()); 

но вы пытались получить доступ к ним с помощью firstname вместо firstName

String firstname = student.getString("firstname"); 
0

// Изменить код на MainActivity.java как fo llowing

show.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest (Method.POST,showUrl,null,new Response.Listener<JSONObject>() { 
      @Override 
+1

Пожалуйста, объясните, как и почему работает ваш код. Это делает ваш ответ более полезным для других людей с той же проблемой. –

Смежные вопросы