테스트 사이트 - 개발 중인 베타 버전입니다

안드로이드 그누보드 DB 연동 채택완료

은빛여전사 8년 전 조회 2,389

안드로이드 어플 화면안에 그누보드 회원 포인트를 뽑아서 표시 할려고 하는데 잘 안되서 질문드립니다

아래소스는   그누보드 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개

채택된 답변
+20 포인트
플래토
8년 전

올리시 소스중에서

protected String doInBackground(String... arg0) {

            try {

                String id = arg0[0];

이부분이 좀 이상한데요

String ... arg0 

으로 인자값의 선언이 되어있고, 

사용은 배열인 

arg0[0]으로 하셨는데 이렇게 하신게 맞나요??

그리고, link를 만드신것을 하기전에

정상적으로 출력되는 부분을 link로 걸어서 확인해보시면서

Exception이 어디서 발생하는지를 찾는게 우선입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

감사합니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

해결 했습니다.. 감사합니다..

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토님 답변 감사합니다

제가 초보자라... 제가 만든 소스가 아니라서요...

어떻게 수정을 해야 오류가 잡히는지 알고 싶습니다..

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인