Php 如何获取json android中返回的多行并将其传递给sqlite

Php 如何获取json android中返回的多行并将其传递给sqlite,php,android,mysql,json,sqlite,Php,Android,Mysql,Json,Sqlite,我正试图通过json将下面提到的php json结果输出到我的android应用程序中,但我只在我的android应用程序sqlite中获得第一个条目作为获取结果,其中可能是php json_encode返回的所有行。我想请求帮助,了解如何获取所有行,并将其传递给sqlite {“error”:false,“user”:{“id”:1,“sudentid”:1,“user_id”:“1”,“全名”:“Mugisha John”,“学校”:“APAPER I”,“level”:“level 2”,

我正试图通过json将下面提到的php json结果输出到我的android应用程序中,但我只在我的android应用程序sqlite中获得第一个条目作为获取结果,其中可能是php json_encode返回的所有行。我想请求帮助,了解如何获取所有行,并将其传递给sqlite

{“error”:false,“user”:{“id”:1,“sudentid”:1,“user_id”:“1”,“全名”:“Mugisha John”,“学校”:“APAPER I”,“level”:“level 2”,“year”:18}{“error”:false,“user”:{“id”:2,“user_id”:“user_id”:“1”,“全名”:“Marie Ange Karamuzi”,“学校”:“Gs.st Joseph de Gita”,“level”:“Sinior 6”,“year”:20}{“error”:false,“user”:“user”:“user”:“3”,“sudentid”,“用户id”:“1”,“全名”:“Niragire Sangano Charles”,“学校”:“Gs.shyogwe”,“等级”:“Sinior 4”,“年份”:20}

我只在我的android应用程序sqlite中获得第一行:

{“id”:1,“sudentid”:1,“用户id”:“1”,“全名”:“Mugisha John”,“学校”:“APAPER I”,“等级”:“2级”,“年份”:18}

Main activity.java方法,我在android中用于获得上述结果:

private void GetStudentDetail(final String mobile) {
    // Tag used to cancel the request
    String tag_string_req = "req_Verfication";
    progressBarList.setVisibility(View.VISIBLE);
    //        myList.setVisibility(View.GONE);
    StringRequest strReq = new StringRequest(Request.Method.POST,
            Config.FETCH_StudentsOfParent_URL, new Response.Listener<String>
    () {
        @Override
        public void onResponse(String response) {
            Log.d(TAG, "cerfication Response: " + response.toString());
            // Parsing json
            for (int i = 0; i < response.length(); i++) {
                try {
                    JSONObject jObj = new JSONObject(response);
                        boolean error = jObj.getBoolean("error");
                        // Check for error node in json
                        if (!error) {
                            // user successfully exist in database
                            JSONObject user = jObj.getJSONObject("user");
                            String id = user.getString("id");
                            String sutdentId = user.getString("sutdentId");
                            String full_name = user.getString("full_name");
                            String year = user.getString("year");
                            String school = user.getString("school");
                            String level = user.getString("level");
                               // pass id ,sutdentId, fullname ,year ,school and level 
to sqlite
                            db.addUser(id, sutdentId, full_name, year,  school, level);

                            progressBarList.setVisibility(View.GONE);
                            myList.setVisibility(View.VISIBLE);
                            }
                          else{
                          // Error in login. Get the error message
                      // hiding the progress bar
                        progressBarList.setVisibility(View.GONE);
                        myList.setVisibility(View.VISIBLE);

                        String errorMsg = jObj.getString("error_msg");
                        Toast.makeText(getActivity(), errorMsg, 
      Toast.LENGTH_LONG).show();
                       }

                  } catch (JSONException e) {
                    // JSON error
                    e.printStackTrace();
                        Toast.makeText(getActivity(), "Json error: " + 
              e.getMessage(), Toast.LENGTH_LONG).show();                         
                   }
                 }
              }
        }, new Response.ErrorListener() {
            @Override
             public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Verfication error Error: " + error.getMessage());
            Toast.makeText(getActivity(),
                      "response error", Toast.LENGTH_LONG).show();
  //                Toast.makeText(getApplicationContext(),
//                        error.getMessage(), Toast.LENGTH_LONG).show();
                 // hiding the progress bar
                progressBarList.setVisibility(View.GONE);
                 myList.setVisibility(View.VISIBLE);
           }
         }) {
          @Override
            protected Map<String, String> getParams() {
              // Posting parameters to verfication url
            Map<String, String> params = new HashMap<String, String>();
            params.put("mobile", mobile);
            return params;
          }
         };
   //        // Adding request to request queue
      MyApplication.getInstance().addToRequestQueue(strReq,tag_string_req);
  }
private void GetStudentDetail(最终字符串移动){
//用于取消请求的标记
字符串标记\u String\u req=“req\u Verfication”;
progressBarList.setVisibility(View.VISIBLE);
//myList.setVisibility(View.GONE);
StringRequest strReq=新的StringRequest(Request.Method.POST,
Config.FETCH\u StudentsOfParent\u URL,new Response.Listener
() {
@凌驾
公共void onResponse(字符串响应){
Log.d(标签,“Cercation响应:+Response.toString());
//解析json
对于(int i=0;i
您需要将JSON数据包装在一个数组中,然后使用JSONArray在Android中解析它

[{"error":false,"user":{"id":1,"sutdentId":1,"user_id":"1","full_name":"Mugisha John","school":"APAPER I","level":"Level 2","year":18}}{"error":false,"user":{"id":2,"sutdentId":2,"user_id":"1","full_name":"Marie Ange Karamuzi","school":"Gs.st Joseph de Gitarama","level":"Sinior 6","year":20}}{"error":false,"user":{"id":3,"sutdentId":3,"user_id":"1","full_name":"Niragire Sangano Charles","school":"Gs. shyogwe","level":"Sinior 4","year":20}}]

您需要将JSON数据包装在一个数组中,然后使用JSONArray在Android中解析它

[{"error":false,"user":{"id":1,"sutdentId":1,"user_id":"1","full_name":"Mugisha John","school":"APAPER I","level":"Level 2","year":18}}{"error":false,"user":{"id":2,"sutdentId":2,"user_id":"1","full_name":"Marie Ange Karamuzi","school":"Gs.st Joseph de Gitarama","level":"Sinior 6","year":20}}{"error":false,"user":{"id":3,"sutdentId":3,"user_id":"1","full_name":"Niragire Sangano Charles","school":"Gs. shyogwe","level":"Sinior 4","year":20}}]
编辑: 我的php代码看起来像下面的文件,但它的工作是好的, 但问题在于安卓系统

  public function StudentsOfParent($mobile){
 $stmt = $this->conn->prepare("SELECT
                         a.id,
                         a.name, 
                         a.mobile, 
                         c.id as sutdentId, 
                         c.user_id, 
                         c.full_name, 
                         c.school, 
                         c.level,
                         c.year,
                         c.id                    
                         from users a 
                         join students c 
                         on a.id = c.user_id where a.mobile= ?");
    $stmt->bind_param("i", $mobile);
    if ($stmt->execute()) {

        // $user = $stmt->get_result()->fetch_assoc();
        // $stmt->close();
        //     // return user's results
        //     return $user;
   $result = $stmt->get_result();
      $usersArr = array();
    while ($user = $result->fetch_assoc()){
    $usersArr[] = $user;
     }
   $stmt->close();
    return $usersArr;
  } else {
return NULL;
  }

   $usersArr = $db->StudentsOfParent($mobile);
  if ($usersArr != false) {
     // user found successfully
   $response["error"] = FALSE;
     foreach($usersArr as $key=>$user){
      $response[$key]["user"]["id"] = $user["id"];
      $response[$key]["user"]["sutdentId"] = $user["sutdentId"];
      $response[$key]["user"]["user_id"] = $user["user_id"];
      $response[$key]["user"]["full_name"] = $user["full_name"];
     $response[$key]["user"]["school"] = $user["school"];
      $response[$key]["user"]["level"] = $user["level"];
      $response[$key]["user"]["year"] = $user["year"];
      echo json_encode($response);
     }
  } else {
 .........
访问上述函数:从mysql获取信息

   $usersArr = $db->StudentsOfParent($mobile);
  if ($usersArr != false) {
     // user found successfully
   $response["error"] = FALSE;
     foreach($usersArr as $key=>$user){
      $response[$key]["user"]["id"] = $user["id"];
      $response[$key]["user"]["sutdentId"] = $user["sutdentId"];
      $response[$key]["user"]["user_id"] = $user["user_id"];
      $response[$key]["user"]["full_name"] = $user["full_name"];
     $response[$key]["user"]["school"] = $user["school"];
      $response[$key]["user"]["level"] = $user["level"];
      $response[$key]["user"]["year"] = $user["year"];
      echo json_encode($response);
     }
  } else {
 .........
编辑: 我的php代码看起来像下面的文件,但它的工作是好的, 但问题在于安卓系统

  public function StudentsOfParent($mobile){
 $stmt = $this->conn->prepare("SELECT
                         a.id,
                         a.name, 
                         a.mobile, 
                         c.id as sutdentId, 
                         c.user_id, 
                         c.full_name, 
                         c.school, 
                         c.level,
                         c.year,
                         c.id                    
                         from users a 
                         join students c 
                         on a.id = c.user_id where a.mobile= ?");
    $stmt->bind_param("i", $mobile);
    if ($stmt->execute()) {

        // $user = $stmt->get_result()->fetch_assoc();
        // $stmt->close();
        //     // return user's results
        //     return $user;
   $result = $stmt->get_result();
      $usersArr = array();
    while ($user = $result->fetch_assoc()){
    $usersArr[] = $user;
     }
   $stmt->close();
    return $usersArr;
  } else {
return NULL;
  }

   $usersArr = $db->StudentsOfParent($mobile);
  if ($usersArr != false) {
     // user found successfully
   $response["error"] = FALSE;
     foreach($usersArr as $key=>$user){
      $response[$key]["user"]["id"] = $user["id"];
      $response[$key]["user"]["sutdentId"] = $user["sutdentId"];
      $response[$key]["user"]["user_id"] = $user["user_id"];
      $response[$key]["user"]["full_name"] = $user["full_name"];
     $response[$key]["user"]["school"] = $user["school"];
      $response[$key]["user"]["level"] = $user["level"];
      $response[$key]["user"]["year"] = $user["year"];
      echo json_encode($response);
     }
  } else {
 .........
访问上述函数:从mysql获取信息

   $usersArr = $db->StudentsOfParent($mobile);
  if ($usersArr != false) {
     // user found successfully
   $response["error"] = FALSE;
     foreach($usersArr as $key=>$user){
      $response[$key]["user"]["id"] = $user["id"];
      $response[$key]["user"]["sutdentId"] = $user["sutdentId"];
      $response[$key]["user"]["user_id"] = $user["user_id"];
      $response[$key]["user"]["full_name"] = $user["full_name"];
     $response[$key]["user"]["school"] = $user["school"];
      $response[$key]["user"]["level"] = $user["level"];
      $response[$key]["user"]["year"] = $user["year"];
      echo json_encode($response);
     }
  } else {
 .........

纳迪格索,谢谢。我不熟悉杰索纳雷,你能帮我举个例子吗?纳迪格索,谢谢。我不熟悉杰索纳雷,你能帮我举个例子吗?