2013-08-28 2 views
0

안드로이드에서 STRING 변수 몇 개를 JSON으로 보내려고합니다. 인터넷에서 가이드 중 하나를 사용하여이 작업을 수행했지만 불행히도 작동하지 않으며 StackOverflow에서 비슷한 질문을 사용하여 해결할 수 없습니다.안드로이드에서 JSON to PHP to MySQL

가 여기 내 안드로이드 코드입니다 : - : 나는 문제가있는 거짓말을 사실로 좁혀 조금 실험 후

<?php 

    $json = file_get_contents("php://input"); 
    $data = json_decode($json); 
    $name = $data[0]->name; 
    $blood = $data[0]->blood; 
    $cell = $data[0]->cell; 
    $email = $data[0]->email; 
    $address = $data[0]->address; 
    $country = $data[0]->country; 
    $state = $data[0]->state; 
    $city = $data[0]->city; 
    $con = mysql_connect("","","") or die(mysqli_connect_error()); 
    $db = mysql_select_db("",$con) or die(mysqli_connect_error()); 
    mysql_query("INSERT INTO Donors(Name,Blood,Mobile,E-Mail,Address,Country,State,City)VALUES('$name','$blood','$cell','$email','$address','$country','$state','$city')"); 

?> 

- 여기

JSONObject jsonObject= new JSONObject(); 
JSONArray jsonArray=new JSONArray(); 

public class sendData extends AsyncTask<String, String, Void> { 

    @Override 
    protected Void doInBackground(String... params) { 

     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost("http://bdp.site40.net/sendRegData.php"); 

     try { 
      HttpEntity httpEntity = new StringEntity(jsonArray.toString()); 
      httpPost.setEntity(httpEntity); 
      httpClient.execute(httpPost); 
     } 
     catch (IOException e) { 
     } 

     return null; 
    } 
} 

public void onClickSubmitButton(View view) throws JSONException { 

    jsonObject.put("name",name); 
    jsonObject.put("blood",blood); 
    jsonObject.put("cell",cell); 
    jsonObject.put("email", email); 
    jsonObject.put("address",address); 
    jsonObject.put("country",country); 
    jsonObject.put("state",state); 
    jsonObject.put("city",city); 

    jsonArray.put(jsonObject); 

    new sendData().execute(); 

} 

그리고 내 PHP 코드 내가 PHP 스크립트에 데이터를 보내거나 데이터가 PHP 스크립트에 의해 전송되는 방식. 누구든지 문제를 찾고 해결할 수 있습니까? 고맙습니다!

포인트 참고 :

나는 (분명히) 개인 정보 보호에 대한 MySQL의 사용자 이름, 암호, 데이터베이스 이름 및 호스트를 제거한
  1. .
  2. 8 개의 변수는 모두 String 형식입니다.
+0

시도 반향 $의 JSON은 제 값을 여기 – Satya

+0

@Satya을하지만 난 내 응용 프로그램의 Submit 버튼을 클릭까지 PHP 스크립트가 어떤 값을하지 않는 기능을 참조하십시오. 그러면 제출 버튼을 클릭 한 후에 값을 볼 수 있습니까? – sd3993

답변

0

제거 라인 :

httpPost.setHeader("JSONObject", jsonObject.toString()); 
httpPost.getParams().setParameter("JSONArray", jsonArray); 

대신 POST 본문에 JSON 콘텐츠를 넣어 : 또한 제대로 JSON 배열을 처리하기 위해 당신의 PHP 스크립트를 수정해야합니다

HttpEntity entity = new StringEntity(jsonArray.toString()); 
httpPost.setEntity(entity); 

을 .

... 
$name = $data[0]->name; 
$blood = $data[0]->blood; 
$cell = $data[0]->cell; 
... 
+0

StringEntity 엔터티가되어야합니다. = new StringEntity (jsonArray.toString()); 권리?? 그리고 내 PHP 스크립트를 수정해야하는 방법에 대한 아이디어? 나는 이것에 처음이에요. – sd3993

+0

$ data-> $ data [0] ->을 (를) 대체하려면 – trebron

+0

으로 충분해야합니다. 내 잘못이야. import 문을 잊어 버렸습니다. :/ – sd3993