mysql이랑 안드로이드 연동을 해볼라하는데
1.서버만들고
2.php를 통하여 요구조건을 get이나 post방식으로 넣어서 서버에 요청
3.서버에서 요청 항목에 맞게 db검색 후 xml로 전송
4.Android에서 xml parsing
이렇게 하라는것까진 찾았는데 각각 어떻게 하는지 감이 잘 안잡혀서요 ㅜ
1번은 apmsetup설치하고 127.0.0.1 들어가면 서버 만들어진거 아닌가요?
2번은 검색해보니 (http://blog.naver.com/aiger?Redirect=Log&logNo=100131220273)
1. PHP
* 데이터를 SELECT해오는 php. xml형식으로 리턴하게 만들었습니다.
<?
$db_conn = mysql_connect('서버명','아이디','패스워드');
mysql_select_db('DB명',$db_conn);
$sql = "select * from ship"; //DB에서 정보가져오기
$rs = mysql_query($sql);
$xmlList.="<?xml version='1.0' encoding='UTF-8' ?>"
while($result = mysql_fetch_array($rs)){
$id = $result[_id];
$board = $result[board];
[출처] [안드로이드]phpMyAdmin(MySQL)서버와 데이터 주고받기|작성자 세뮤렐
뭐 이런식으로...하라는데 이걸 어떻게 사용해야하는거죠.. 이클립스에 붙여넣기 해야되나요..ㅜ 자바밖에 몰라서 어떻게 해야될지 감이 안잡히네요
3번은
마찬가지로 php언어로 검색을하는거같은데, 또 xml로 전송을 어떻게, 어디서 해야되는걸까요..
4번은 할줄압니다 ..ㅋ
조금 도와주세요 ㅜㅜ 계속 찾아다니고 있는데 답답해서 질문하나 올려요
1. 2. 둘다 검색으로 쉽게 나오는 부분입니다..
안드로이드 post나 안드로이드 get으로만 쳐봐도 소스 많이 나올꺼라 예상되는군욤..
바로 이해하기 쉬운 방식은 get방식이지요..
post/get은 파라미터 넘기는 방식인데요
get은 바로 위에 여기 홈페이지 게시물 주소만 봐도 이해 가실겁니다.
지금 이 페이지 주소가
http://www.androidpub.com/index.php?mid=android_dev_qna&document_srl=2402828
이거네요..
index.php? 뒷부분 있죠.
?mid=android_dev_qna&document_srl=2402828
이 부분이 get방식 이용한 겁니다.
mid 라는 파라미터에 android_dev_qna 라는 값을 준거고
document_srl 이라는 파라미터에 2402828 이라는 값을 넘겨준거지요..
post방식은 눈에 안보입니다.
다시 말해 get방식은 그냥 님이 접속하려는 URL뒤에 추가함으로써 간단하게 전달할수 있습니다.
단 눈에 보이기 때문에 보안이 필요한 데이터를 전송하면 안될터이고.. 전달하는 데이터 길이에 제한이 있지요..
post방식은 눈에 안보이기때문에 보안이 필요한 부분은 post방식을 이용하게 되고 길이에 제한이 없습니다.
웹페이지에서 get이나 post 메시지를 받는건 쉽게 구할수 잇는 코드일겁니다..
단순히 웹페이지 1에서 2로 넘어갈때도 파라미터를 넘기는 부분은 필요할 테니 당연한거지요..
안드로이드에서 웹서버에 요청하는 방식은 님이 정하는 겁니다.
예를 upload.php 라는 페이지가 파라미터로 name이라는 값을 받아서 DB에 추가하는 기능을 한다면..
안드로이드에서는 upload.php 라는 페이지에 접속하게하고 get이나 post방식으로 name값을 넘깁니다.
그럼 웹페이지에서 할일은 name이라는 값을 받아서 DB에 추가하는 기능을 수행하도록 하면 됩니다.
웹페이지에서는 DB에 접근할수 있으니까요..
다시 말해 웹페이지의 역할은 DB와 안드로이드를 연결시켜주는 다리 역할입니다..
안드로이드가 바로 외부 DB에 접근이 불가능하기 때문에 웹페이지에게 대신 시키는거지요..
단순한 DB 동작이라면 아예 안드로이드에서 웹페이지로 넘기는 파라미터 자체를 DB쿼리문으로 넘겨버리고
웹페이지에서는 전달받은 쿼리문으로 DB를 실행하게 하도록 해도 되겠지요.
아 답글 감사함다 ㅜㅜ 말씀하신대로 검색해보고 실행해보고있어요..
근데 하나 질문드려도 될런지..
안드로이드에서 값을 입력해서 php에서 $name = $_REQUEST['name'] ; 이런식으로 받았거든요
근데 안드로이드자체에선 보냈다고 잘뜨는데, 보낸페이지(http://127.0.0.1/test.php) 는 새로고침하면 입력한값이 뜨질 않네요 ㅜ;
그게 정상인건가요?
참고한 소스는 http://credenda.blog.me/80117001233여기에요ㅎ
apmsetup 은 웹서버와 mysql 서버를 동시에 구축해주는 패키지 프로그램입니다.
말씀하신 것처럼 "일단" 서버는 만들어지셨네요. 하지만 설치만 한다고해서 실제로 연결되어 있는 것은 아니고요.
그럼 웹서버와 mysql 서버간의 데이터 통신을 수행하는 역할은 "웹페이지" 가 하게 됩니다.
위에서 적어주신 소스는 php로 만들어진 웹페이지에서 mysql 에 접속하여 데이터를 읽어오는 방법에 대한 로직이라고 할수 있습니다.
그럼 이해를 위해서 데이터 통신의 단계를 좀더 명확히 설명드리자면,
1. 안드로이드
- post/get 방식으로 원하는 데이터를 웹서버의 웹페이지에 접속하여 요청
2. 웹서버의 웹페이지
- post/get 방식의 데이터를 받아서 mysql 서버에 DB 데이터를 요청함.
3. mysql 서버
4. 웹서버의 웹페이지 (2번 웹페이지와 동일한 페이지입니다)
- mysql 서버에서 받은 데이터의 결과를 xml/json 으로 변환하여 웹페이지에 출력
5. 안드로이드
- 웹페이지의 출력된 데이터를 읽어와서 파싱하여 활용
mysql 에 안드로이드는 직접 접근할수 없기 때문에,
중간에 php 나 jsp,asp 같은 웹서버 프로그래밍언어를 이용하여 구축한 웹페이지를 중간 다리역할로 사용하여서 접근해야합니다.
apmsetup 를 이용하시므로 여기서는 php 로 구축한 웹페이지가 되겠네요.
그렇기 때문에 먼저 선행될 지식으로는..
1. 웹페이지 (php,asp,jsp) 를 만드는 기본 지식
2. 웹페이지 (php,asp,jsp) 를 통해서 mysql 의 데이터를 읽고 쓰는 연동 부분
( 키워드 : php mysql 연동 )
3. 안드로이드에서 웹페이지로 post, get 으로 데이터 보내고, 웹페이지 내용을 읽어오는 부분
( 키워드 : 안드로이드 http post 통신, 안드로이드 http get 통신 )