차근차근/Android

안드로이드 PHP 연동예제

예쁜꽃이피었으면 2014. 8. 21. 13:06
http://xelloss705.tistory.com/category/%EC%BB%B4%ED%93%A8%ED%84%B0%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C,Android


이번에 했던 DB Term!

1) 먼저 쓰레드 처리해야함..인터넷 연결시~~ 매니페스트는 물론이고! (아래껀 임시적 쓰레드설정)

if (android.os.Build.VERSION.SDK_INT > 9) {

StrictMode.ThreadPolicy policy = newStrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);} // Thread 설정! 인터넷연결시 SDK 버전 9이상에선 꼭 설정해야함!

2) Server 연동

 

핸들러안에 함수~~ 여기로 쏘는것

여기선 profname 이 primary key~

SendByHttp("정연돈""labname","되면완전성공!");

private String SendByHttp(String primarykey, String attr, String msg) {

if(msg == null)

msg = "";

//Php URL 입력 후 연결준비

//String URL = "http://stepeagle705.pusku.com/Research.php";

String URL = "Server의 php나 Jsp파일 주소~위가 예제";

DefaultHttpClient client = new DefaultHttpClient();

try {

Log.i("시작 : ","3 ");

HttpPost post = new HttpPost(URL); //HttpPost 메소드로 URL에 접속!

Log.i("시작 : ","3.12 ");

//NmaeValuePair 리스트로 BasicNameValuePair받을준비 ->두개의 쌍을 하나의 객체에 담음

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

//리스트에 BasicNameValuePair 객체 담음 왼쪽은 DB의 column 명 오른쪽은 Value

//nameValuePairs.add(new BasicNameValuePair(attrmsg));

nameValuePairs.add(new BasicNameValuePair("profname", primarykey));

//nameValuePairs.add(new BasicNameValuePair(attrmsg));

if(!attr.equals("profname")){ // 일반적으로 입력이 아닌 받아오기만 할때 방해 안되게

nameValuePairs.add(new BasicNameValuePair(attr, msg));}

//post변수(URL연결변수)에 설정했던 리스트 이어주고, 인코딩형식 UTF-8로 지정. 이거 해야 php넘길 한글값 제대로 먹

post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));//넘겨주Query 인코딩지정

/* 지연시간 최대 10초 */

HttpParams params = client.getParams();

HttpConnectionParams.setConnectionTimeout(params, 6000);

HttpConnectionParams.setSoTimeout(params, 6000);

/* 데이터 보낸 뒤 서버에서 데이터를 받아오는 과정 */

HttpResponse response = client.execute(post);

Log.i("시작 : ","3.25 ");

BufferedReader bufreader = new BufferedReader(

new InputStreamReader(response.getEntity().getContent(),

"utf-8"));

Log.i("시작 : ","4 ");

String line = null;

String result = "";

StringBuilder sb = new StringBuilder();//추가

while ((line = bufreader.readLine()) != null) {

//result += line;

sb.append(line.trim());

Log.i("시작 : ","5 ");

}

result = sb.toString();

bufreader.close();//추

return result;

3) Json Parsing

String Json = SendByHttp("정연돈" , attr, sMessage); // php에 보낼 메세지 던짐과 동시에 연결 후 리턴으로 값 받아

Log.i("Json : ", Json);

try{

String ResultH = "labname : \n";

String ResultM = "";

JSONArray ja = new JSONArray(Json); //Json만들고 밑에 루프 돌면서 Parsing

for(int j=0; j<ja.length(); j++){

JSONObject order = ja.getJSONObject(j);

ResultH += order.getString("labname");

ResultM += order.getString("address"); //getstring메소드로 column명 입력해서 값 받아

}

tvH.setText(ResultH);

tvM.setText(ResultM);

final String temp = ResultH; // 이렇게 해야되나..

4) PHP 파일

<?php

 

$host_name = 'DB의서버주소';

$user_name = 'DB의아이디';

$user_password = 'DB의비밀번호';

$db_name = 'DB의이름';

 

$conn=mysql_connect($host_name, $user_name, $user_password) or die( "SQL server에 연결할 수 없습니다.");

 

mysql_select_db($db_name);

mysql_query("SET NAMES utf8");

 

 

 

$college = $_POST[college];

$dept = $_POST[dept];

$profname = $_POST[profname];

$labname = $_POST[labname];

$address = $_POST[address];

$phone = $_POST[phone];

$email = $_POST[email];

$url = $_POST[url];

$part = $_POST[part];

$benefit = $_POST[benefit];

$vision = $_POST[vision];

$circumstance = $_POST[circumstance];

$reple1 = $_POST[reple1];

$reple2 = $_POST[reple2];

$reple3 = $_POST[reple3];

$reple4 = $_POST[reple4];

$reple5 = $_POST[reple5];

 

 

if(isset($college)){

$sqlAdd = "UPDATE ResearchLab SET college='$college' where profname = '$profname'";

}

if(isset($dept)){

$sqlAdd = "UPDATE ResearchLab SET address='$dept' where profname = '$profname'";

}

if(isset($labname)){

$sqlAdd = "UPDATE ResearchLab SET labname='$labname' where profname = '$profname";

}

if(isset($labname)){

$sqlAdd = "UPDATE ResearchLab SET labname='$labname' where profname = '$profname'";

}

if(isset($address)){

$sqlAdd = "UPDATE ResearchLab SET address='$address' where profname = '$profname'";

}

if(isset($phone)){

$sqlAdd = "UPDATE ResearchLab SET phone='$phone' where profname = '$profname'";

}

if(isset($email)){

$sqlAdd = "UPDATE ResearchLab SET email='$email' where profname = '$profname'";

}

if(isset($url)){

$sqlAdd = "UPDATE ResearchLab SET url='$url' where profname = '$profname'";

}

if(isset($part)){

$sqlAdd = "UPDATE ResearchLab SET part='$part' where profname = '$profname'";

}

if(isset($benefit)){

$sqlAdd = "UPDATE ResearchLab SET benefit='$benefit' where profname = '$profname'";

}

if(isset($vision)){

$sqlAdd = "UPDATE ResearchLab SET vision='$vision' where profname = '$profname'";

}

if(isset($circumstance)){

$sqlAdd = "UPDATE ResearchLab SET circumstance='$circumstance' where profname = '$profname'";

}

if(isset($reple1)){

$sqlAdd = "UPDATE ResearchLab SET reple1='$reple1' where profname = '$profname'";

}

if(isset($reple2)){

$sqlAdd = "UPDATE ResearchLab SET reple2='$reple2' where profname = '$profname'";

}

if(isset($reple3)){

$sqlAdd = "UPDATE ResearchLab SET reple3='$reple3' where profname = '$profname'";

}

if(isset($reple4)){

$sqlAdd = "UPDATE ResearchLab SET reple4='$reple4' where profname = '$profname'";

}

if(isset($reple5)){

$sqlAdd = "UPDATE ResearchLab SET reple5='$reple5' where profname = '$profname'";

}

 

 

mysql_query($sqlAdd, $conn);

$sql = "select * from ResearchLab where profname = '$profname'";

 

$query = mysql_query($sql, $conn);

while($row = mysql_fetch_assoc($query)){

$output[] = $row;

}

print (json_encode($output));

 

 

?>

이상한것은 POST로 받아야 안드로이드에서 넘긴값이 디비에 들어갔다는것~ 여기서 위에서 말했듯이 profname이 primarykey로 where절에 들어감


반응형