2015-01-15 4 views
0

나는 친구 목록을 만들려는 앱에서 작업하고 있습니다. 이를 위해 나는 사용자의 모든 친구들을 만나서 내 응용 프로그램에 보여주고 싶습니다. 그러나 그것은 단지 1 명의 사용자가 아닌 모든 사용자를 보여줍니다. 누군가 나를 도울 수 있습니까? 여기 내 코드 : PHP :JSON Array의 전체 값을 가져옵니다

<?php 

// array for JSON response 
$response = array(); 

// Datenbankverbindungsklasse einbinden 
require_once(dirname(__FILE__).'/db_connect.php'); 

// Klasseninstanz und -verbindung herstellen 
$db = new DB_CONNECT(); 
$con = $db->connect(); 

// check for post data 
if (isset($_GET["bid"])) { 
    $bid = intval($_GET['bid']); 

$query = sprintf("SELECT Benutzer.benutzername 
          FROM Benutzer 
          INNER JOIN Freundesliste 
          ON benutzer_ID = Freundesliste.Bid_2 and Freundesliste.Bid_1='%d'", 
       mysql_real_escape_string($bid, $con)); 

$result = mysql_query($query); 

if (!empty($result)) { 
     // check for empty result 
     if (mysql_num_rows($result) > 0) { 

      $result = mysql_fetch_array($result); 

      $benutzer = array(); 
      $benutzer["benutzername"] = $result["benutzername"]; 

      // success 
      $response["success"] = 1; 

      // user node 
      $response["benutzer"] = array(); 

      array_push($response["benutzer"], $benutzer); 

      // echoing JSON response 
      echo json_encode($response); 
     } else { 
      // no benutzer found 
      $response["success"] = 0; 
      $response["message"] = "No benutzer found"; 

      // echo no users JSON 
      echo json_encode($response); 
     } 
    } else { 
     // no benutzer found 
     $response["success"] = 0; 
     $response["message"] = "No benutzer found"; 

     // echo no users JSON 
     echo json_encode($response); 
    } 
} else { 
    // required field is missing 
    $response["success"] = 0; 
    $response["message"] = "Required field(s) is missing"; 

    // echoing JSON response 
    echo json_encode($response); 
} 



$db->close(); 
?> 

안드로이드 :

/** Vorhandene Freunde laden */ 
    class GetFriends extends AsyncTask<String, String, String> { 

     /** 
     * Before starting background thread Show Progress Dialog 
     * */ 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(FriendlistActivity.this); 
      pDialog.setMessage("Freunde werden geladen..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     /** 
     * Freunde im Hintergrund laden 
     * */ 
     protected String doInBackground(String... params) { 

      // updating UI from Background Thread 
      runOnUiThread(new Runnable() { 
       public void run() { 
        // Check for success tag 
        int success; 
        try { 
         // Building Parameters 
         List<NameValuePair> params = new ArrayList<NameValuePair>(); 
         params.add(new BasicNameValuePair("bid", bid)); 

         // getting user data by making HTTP request 
         // Note that user data url will use GET request 
         JSONObject json = jsonParser.makeHttpRequest("LINK", "GET", params); 

         // json success tag 
         success = json.getInt(TAG_SUCCESS); 
         if (success == 1) { 
          // successfully received user data 
          JSONArray userObj = json.getJSONArray(TAG_USER); // JSON Array 

          // get all user object from JSON Array 
          for(int i=0;i<userObj.length();i++){ 
           json_data = userObj.getJSONObject(i); 
           String friend = json_data.get(TAG_NAME).toString(); 
           listadapter.add(friend); 
          } 

          friendlistview.setAdapter(listadapter); 


         }else{ 
          // user with bid not found 
         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }); 

      return null; 
     } 

     /** 
     * After completing background task Dismiss the progress dialog 
     * **/ 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog once got all data 
      pDialog.dismiss(); 
     } 
    } 
+0

결과에서 한 행만 가져 왔습니다. – AbraCadaver

답변

0

당신은 루프를 필요

$benutzer = array();  
$response["benutzer"] = array(); 
while($result = mysql_fetch_array($result)) { 

    $benutzer["benutzername"] = $result["benutzername"]; 

    $response["success"] = 1; 

    array_push($response["benutzer"], $benutzer); 
} 
+0

PHP 코드 – Dennis

+0

을 편집하면 응용 프로그램이 손상됩니다. 오류 메시지가 있습니까? –

+0

Nop, 앱이 종료됩니다 – Dennis

0

결과의 각 행을 반복하기 위해서는이 방법을 시도 결과는 모든 행을 얻습니다.

while($row = mysql_fetch_assoc($result)) { 
    $response["benutzer"][] = $row["benutzername"]; 
} 
$response["success"] = 1; 

MySQL 확장에서 빠져 나와 PDO 또는 MySQLI를 사용하십시오.

+0

작동하지 않습니다 .. 난 지금 어떤 결과가 없어 – Dennis

관련 문제