http://memy80.blog.me/100109026444
## 기본 환경
Apache, php, mysql 환경의 서버에서...
php로 mysql에 접속하여 가져온 데이터를 JSONArray 형식으로 파싱후
파싱된 문자열을 안드로이드로 보냄.
## PHP소스코드(convert_jason.php)
<? // 데이터베이스 접속 문자열. (db위치, 유저 이름, 비밀번호) // 데이터베이스 선택 mysql_select_db("데이터베이스명",$connect); // 세션 시작 session_start(); // 쿼리문 생성 $sql = "select * from 테이블명 order by group_num desc, ord asc"; // 쿼리 실행 결과를 $result에 저장 // 반환된 전체 레코드 수 저장. $total_record = mysql_num_rows($result); // 전체 페이지 수 계산..... ==> 필요 없을지도?? if ($total_record % $scale == 0) $number = $total_record - $start; // JSONArray 형식으로 만들기 위해서... echo "["; // 반환된 각 레코드별로 JSONArray 형식으로 만들기. // 년월일시분초 를 년월일만 표시되도록 변경(보기좋게;) $day = substr($row[regist_day], 0, 10); for ($j=0; $j<$row[depth]; $j++) // 변수 설명 // echo로 출력 // 마지막 레코드 이전엔 ,를 붙인다. 그래야 데이터 구분이 되니깐. if($i<$total_record-1){ // JSONArray의 마지막 닫기 |
이 파일은 http://사이트명/convert_jason.php 로 실행시 화면에 출력되는 내용은 대강
[{"number":1,"name":"홍길동","id":"gdhong","subject":"1번글 제목","content":"1번글 내용입니다.","date":"2010-06-28","filename":"img1.jpg"},
{"number":2,"name":"이순신","id":"leess","subject":"2번글 제목","content":"2번글 내용입니다.","date":"2010-07-05","filename":"img2.jpg"},
{"number":3,"name":"강감찬","id":"kkchan","subject":"3번글 제목","content":"3번글 내용입니다.","date":"2010-05-05","filename":"img3.jpg"}]
## 안드로이드 소스코드
- AndroidManifest.xml에 uses-permission인 android.permission.INTERNET 퍼미션 추가.
package kr.or.ketti; import java.io.BufferedReader; import org.json.JSONArray; import android.app.Activity; public class JSONArrayTest extends Activity { @Override // 웹에서 Json 형식으로 만들어진 php문서 받아옴
for(;;){ // 웹상에 보여지는 텍스트를 라인단위로 읽어 저장. String line = br.readLine(); if(line == null) break; // 저장된 텍스트 라인을 jsonHtml에 붙여넣음 jsonHtml.append(line + "\n"); } br.close(); } conn.disconnect(); } } catch(Exception ex){ Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG).show(); } return jsonHtml.toString(); } |
## layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/parse" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="parse" /> <EditText android:id="@+id/result" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="12dp"/> </LinearLayout> |
## 테스트 결과.
[출처] (JSONArray, php)웹에서 디비의 텍스트 다운받기|작성자 꾸냥
'◆ 무한한 가능성 > & Android' 카테고리의 다른 글
[Android] Developers Site (0) | 2010.08.10 |
---|