초보개발자가 선배님들께 문의 드립니다.
배열을 만들어서 post 로 php 에 데이타를 보내서 php 배열에 넣어주려고 하는데 잘 안풀립니다.
안드로이드 소스에서는 오류없이 실행이 되는데
php 에서 값을 받지를 못하고 있습니다.
소스를 한번 봐주셨으면 좋겠습니다.
안드로이드 소스
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","홍길동");
jsonObject.put("tel","12345");
jsonArray.put(jsonObject);
jsonObject = new JSONObject();
jsonObject.put("name","홍");
jsonObject.put("tel","123");
jsonArray.put(jsonObject);
// [{"tel":"12345","name":"홍길동"},{"tel":"123","name":"홍"}]
new sendData().execute();
====================================
public class sendData extends AsyncTask<String, String, Void> {
@Override
protected Void doInBackground(String... params) {
// TODO Auto-generated method stub
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.test.com/jsontest1.php");
try {
HttpEntity httpEntity = new StringEntity(jsonArray.toString(), "UTF-8");
httpPost.setEntity(httpEntity);
httpPost.setHeader("Content-type", "application/json");
try {
httpClient.execute(httpPost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
php 소스 : jsontest1.php
<?php
$mysql_hostname = "";
$mysql_user = "";
$mysql_password = "";
$mysql_database = "";
$conn = mysqli_connect($mysql_hostname, $mysql_user, $mysql_password, $mysql_database);
if(mysqli_connect_errno($conn)) {
echo "Database Connection Fail <br>";
} else {
/*echo "Connection OK";*/
}
mysqli_select_db($conn, $mysql_database);
mysqli_query("SET NAMES UTF8");
$arr = $_POST['jsonarr'];
$decarr = json_decode(stripslashes($arr, true));
print_r($decarr);
//echo "<br/>";
$count = count($decarr);
//echo "$count <br/>";
$values = array();
$update_values = array();
for ($x=0; $x < $count; $x++){
$newrec = $decarr[$x];
$desc = $newrec['name'];
$desc = mysqli_real_escape_string($conn, $desc);
echo $desc;
echo "<br/>";
$type = $newrec['tel'];
$type = mysqli_real_escape_string($conn, $type);
echo $type;
echo "<br/>";
// Create insert array
$values[] = "('".$desc."', '".$type."')";
// This is used for the on duplicate update
$update_values[] = "name=VALUES(name),tel=VALUES(tel)";
}
mysqli_close($conn);
?>