안드로이드 그누보드 DB 연동 채택완료
안드로이드 어플 화면안에 그누보드 회원 포인트를 뽑아서 표시 할려고 하는데 잘 안되서 질문드립니다
아래소스는 그누보드 root 폴더의 testquery.php 파일 입니다
$con=mysqli_connect("localhost","sun7684","qwer1234","sun7684");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$ID = $_GET['ID'];
$result = mysqli_query($con,"SELECT mb_point FROM g5_member where mb_id='$ID'");
$row = mysqli_fetch_array($result);
$data = $row[0];
if($data){
echo $data;
}
mysqli_close($con);
?>
인터넷 주소창에 아래처럼 아이디 지정해서 로딩하면
아래 이미지처럼 정상적으로 1200 이라는 숫자가 표시 됩니다
http://sun7684.dothome.co.kr/testquery.php?ID=admin">http://sun7684.dothome.co.kr/testquery.php?ID=admin

아래는 안드로이드 화면으로 로딩시키기 위한 안드로이드 자바 소스 파일입니다
package call.exam.jsh.appaaa;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.AsyncTask;
import android.widget.TextView;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URL;
public class zzzzzz extends AppCompatActivity {
TextView txtview;
phpdo task;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zzzzzz);
String id = "admin";
task = new phpdo();
txtview = (TextView) findViewById(R.id.txtView);
task.execute(id);
}
private class phpdo extends AsyncTask
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... arg0) {
try {
String id = arg0[0];
String link = "http://sun7684.dothome.co.kr/testquery.php?ID=">http://sun7684.dothome.co.kr/testquery.php?ID=" + id ;
URL url = new URL(link);
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(link));
HttpResponse response = client.execute(request);
BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
while ((line = in.readLine()) != null) {
sb.append(line);
break;
}
in.close();
return sb.toString();
} catch (Exception e) {
return new String("Exception: " + e.getMessage());
}
}
@Override
protected void onPostExecute(String result) {
//txtview.setText("Login Successful");
txtview.setText(result);
}
}
}
이렇게 하여 빌드하면 정상적으로 빌드까지 완료가 됩니다
하지만 실행하여 보면

이런식으로 표시가 됩니다
위 문자 대신 1200 이라는 문자가 표시가 되야 하는데요
어떻게 해야 하는지 잘 모르겠어서 문의 드립니다..
도와 주세요 ㅠㅠㅠㅠ
답변 4개
올리시 소스중에서
protected String doInBackground(String... arg0) {
try {
String id = arg0[0];
이부분이 좀 이상한데요
String ... arg0
으로 인자값의 선언이 되어있고,
사용은 배열인
arg0[0]으로 하셨는데 이렇게 하신게 맞나요??
그리고, link를 만드신것을 하기전에
정상적으로 출력되는 부분을 link로 걸어서 확인해보시면서
Exception이 어디서 발생하는지를 찾는게 우선입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인