마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오와 데이터베이스 서버 연동 질문

0 추천

단 안드로이드 스튜디오와 wamp서버 그리고 PHP를 사용하고 있고, DB는 MYSQL을 씁니다.

public class GetData extends AsyncTask<String, Void, String> {
ProgressDialog progressDialog;
String errorString = null;

@Override
protected void onPreExecute() { super.onPreExecute();}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);

progressDialog.dismiss();
Log.d(TAG, "response  - " + result);

if (result == null){

Toast.makeText(getApplicationContext(), errorString, Toast.LENGTH_LONG).show();
}
else {

mJsonString = result;
showResult();
}}
@Override
protected String doInBackground(String... params) {

String serverURL = params[0];

try {

URL url = new URL(serverURL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();


httpURLConnection.setReadTimeout(5000);
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.connect();


int responseStatusCode = httpURLConnection.getResponseCode();
Log.d(TAG, "response code - " + responseStatusCode);

InputStream inputStream;
if(responseStatusCode == HttpURLConnection.HTTP_OK) {
inputStream = httpURLConnection.getInputStream();
}
else{
inputStream = httpURLConnection.getErrorStream();
}

InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

StringBuilder sb = new StringBuilder();
String line;

while((line = bufferedReader.readLine()) != null){
sb.append(line);
}

bufferedReader.close();

return sb.toString().trim();
} catch (Exception e) {

Log.d(TAG, "InsertData: Error ", e);
errorString = e.toString();

return null;
}

}
}

안드로이드에서 디비 연동은 위와 같이 하고 있고,

<?php

$link=mysqli_connect("*","*","*", "assistant" );

if (!$link) { echo "MySQL 접속 에러 : "; echo mysqli_connect_error(); exit(); }

mysqli_set_charset($link,"utf8");

$sql="select name, inform from assistant.ingre";

$result=mysqli_query($link,$sql);

$data = array();

if($result){

while($row=mysqli_fetch_array($result)){ array_push($data, array('name'=>$row[0], 'inform'=>$row[1] ));}

header('Content-Type: application/json; charset=utf8');

 

$json = json_encode(array("하이"=>$data), JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE);

echo $json; }

else{  echo "SQL문 처리중 에러 발생 : "; echo mysqli_error($link); }

mysqli_close($link);   ?>

PHP는 위와 같이 쓰고 있습니다.

여기서 1번 액티비티2번액티비티가 있으면

1번 액티비티는 GridVIew와 setOnitemListener를 사용해서 뷰의 어느 한 곳을 터치 했을때, position 값을 받아와서 Intent를 이용해 2번액티비티로 그 정보를 넘겨주고,

2번 액티비티에서 그 정보를 받아서 DB서버에서 그와 맞는 정보를 가져오고 싶습니다.

일단 기본적인 레이아웃과 액티비티는 구현했는데, 문제가 되는 부분이 DB서버에서 1번액티비티를 통해 넘겨주는 값을 받아서 그에 맞는 데이터를 불러오는 과정인데... 이 부분은 자바부분만 고치면 되는지, PHP를 고쳐야하는지를 잘 모르겠네요...

요약해서 말씀드리면 2번 액티비티(1개의 액티비티)에서 1번 액티비티에서 넘겨주는 값에 따라 다른 데이터를 표시해 주고 싶습니다.

리기 (270 포인트) 님이 2018년 6월 10일 질문
리기님이 2018년 6월 10일 수정

1개의 답변

0 추천
onPostExecute 이부분에서 php문으로 받은 데이터들을 작업수행 하시면 되는데
받은 데이터를 클래스를 하나 만들어서 add시켜주고 생성자,게터,세터들을 만들어서 쓰시고싶을때 꺼내쓰시면 될것같습니다.
1년차개발자 (180 포인트) 님이 2018년 6월 11일 답변
...