티스토리 뷰

참조 : http://blog.naver.com/seodaewoo/130038360102

APM 환경이 구축되어 있다고 가정한다.

1. MySQL 에서 데이터베이스 테이블은 다음과 같이 생성한다.


create table flex2users (userid char(8) primary key, username char(8) not null, mail varchar(50) not null)



2. 다음의 PHP 프로그램을 작성한다. 파일명은 flex2apm.php 이다.
MySQL 의 서버명, 사용자명, 암호는 자신의 것으로 바꾼다.


< ?php
/* Database : test, Table : flex2users
schema
create table flex2users (userid char(8) primary key, username char(8) not null, mail varchar(50) not null)
*/

include $_SERVER[DOCUMENT_ROOT]."/miniBoard/_include/dbconn.php";


// INSERT START
if($_POST["userid"] AND $_POST["mail"] AND $_POST["username"]) {
   $query = "INSERT INTO flex2users SET
      userid='".$_POST["userid"]."',
      username='".$_POST["username"]."',
      mail='".$_POST["mail"]."'
   ";
   $Result=mysql_query($query);
}
// INSERT END


// SELECT START
$query = "SELECT * FROM flex2users";
$result=mysql_query($query);
$rowNum=mysql_affected_rows();
//if($rowNum<0) { $rowNum = 0; }

$Return = "<users>";
for( $i = 0; $i < $rowNum; $i++) {
   $rowData=mysql_fetch_array($result);
   $Return .= "<user><userid>".$rowData['userid']."</userid><username>".$rowData['username']."</username><mail>".$rowData['mail']."</mail></user>";
}
$Return .= "</users>";
// SELECT END

echo "rowNum : ".$rowNum."<br />";

//echo $Return;
print($Return);

echo "rowNum : ".$_POST["userid"]."<br />";
echo "rowNum : ".$_POST["username"]."<br />";
echo "rowNum : ".$_POST["mail"]."<br />";
?>



3. 다음 flex2apm.mxml 파일을 작성한다.
yoursite 는 자신의 서버 URL 을 써준다.


< ?xml version="1.0" encoding="utf-8"?>
< s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                  xmlns:s="library://ns.adobe.com/flex/spark" 
                  xmlns:mx="library://ns.adobe.com/flex/mx">
   

   <mx:Form x="22" y="22" width="493">
      <mx:HBox>
         <mx:Label text="USER ID" />
         <mx:TextInput id="userid" />
      </mx:HBox>
      <mx:HBox>
         <mx:Label text="USER NAME" />
         <mx:TextInput id="username" />
      </mx:HBox>
      <mx:HBox>
         <mx:Label text="Email Address" />
         <mx:TextInput id="mail" />
      </mx:HBox>
      <mx:Button label="Submit" click="send_data()" />
   </mx:Form>   
   
   <mx:DataGrid id="dgUserRequest" x="22" y="168" dataProvider="{userRequest.lastResult.users.user}">
      <mx:columns>
         <mx:DataGridColumn headerText="User ID" dataField="userid" />
         <mx:DataGridColumn headerText="User Name" dataField="username" />
      </mx:columns>
   </mx:DataGrid>   
   
   <mx:TextInput x="243" y="197" id="selectedmailaddress" text="{dgUserRequest.selectedItem.mail}" />
   
   <fx:Declarations>
   <s:HTTPService id="userRequest" url="http://minineko.ipdisk.co.kr/flextophp.php" method="POST" showBusyCursor="true" useProxy="false" fault="faultHandler(event)">
      <s:request xmlns="">
         <userid>{userid.text}</userid>
         <username>{username.text}</username>
         <mail>{mail.text}</mail>
      </s:request>
   </s:HTTPService>
   </fx:Declarations>      


< fx:Script>
   <![CDATA[
      import mx.collections.ArrayCollection;
      import mx.controls.Alert;
      import mx.events.FlexEvent;
      import mx.managers.CursorManager;
      import mx.rpc.events.FaultEvent;
      import mx.rpc.events.ResultEvent;
      
      private function send_data():void {
         userRequest.send();
      }
      
      //----------------------------------------------------------------------------------------------------
      // WebServer 연결 실패
      public function faultHandler(event:FaultEvent):void {
         Alert.show("통신연결 지연 실패 : "+event.toString(),"메세지");
      }
      //----------------------------------------------------------------------------------------------------
   ]]>
< /fx:Script>   

< /s:WindowedApplication>



4. MXML 파일을 컴파일한다.

5. 브라우저로 서버에 생성된 flex3apm.swf 파일을 열어보면 아래와 같이 동작한다.
각 필드를 입력하고 Submit 버튼을 누르면 새 레코드가 삽입되며
(User ID가 중복되면 삽입되지 않는다. 왜 Primary Key 이므로...)
아래의 데이터 행을 클릭하면 메일 주소가 보인다. 입력과 master-Slave 를 보여주는 예이다.


--------------------------------------------------------------------------------------------------------------------------------------------------
추가내용 - 오라클 연동시 언어셋에 신경써야함
--------------------------------------------------------------------------------------------------------------------------------------------------
1. 파일 베이스틑 EUC-KR
2. 오라클에서 가져오는 데이터는 KO16KSC5601
3. FLEX로 전송 시킬 때는 UTF-8

dbconnStart.php


< ?php
header("content-type:text/html; charset=euc-kr");
putenv("NLS_LANG=AMERICAN_AMERICA.KO16KSC5601");

$id="J200710_16";
$pw="manager";
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 222.231.63.182)(PORT = 5479)))(CONNECT_DATA=(SID=ora81)))"; 
$conn = ocilogon($id,$pw,$db,'euc-kr'); 

if (!$conn) {
   $e = oci_error();
   trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
?>



flextophp.php


< ?php
include "./_dbconn/dbconnStart.php";

$query = oci_parse($conn, 'SELECT ID, PNAME, PNAME_H FROM JOKBO_BOOK ORDER BY JOKBO_KEY ASC');
//$query = oci_parse($conn, 'SELECT ID, PNAME, PNAME_H FROM JOKBO_BOOK');
oci_execute($query);

$Return = "<users>";
while (($row = oci_fetch_array($query, OCI_BOTH))) {
//echo "ID : ".$row['ID']." / PNAME : ". $row['PNAME']." / PNAME_H : ". $row['PNAME_H']."<br/>";
// EUC-KR 은 기본적으로 오라클에서 한글이 깨지지 않은 상태로 가져오기 위해서 UTF-8로 하면 안되기 때문에 인코딩으로 변경해야함
   // Flex 에서 한글을 사용하기 위해서 EUC-KR 을 UTF-8 로 변경함
   $row['PNAME'] = iconv("EUC-KR", "UTF-8", $row['PNAME']);

   $Return .= "<user><userid>".$row['ID']."</userid><username>".$row['PNAME']."</username><mail>".$row['PNAME_H']."</mail></user>";
}
$Return .= "</users>";


echo $Return;

include "./_dbconn/dbconnEnd.php";
?>



dbconnEnd.php


< ?php
oci_free_statement($query);
oci_close($conn);
?>




FLEX - FlexToPhp.mxml


< ?xml version="1.0" encoding="utf-8"?>
< s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                  xmlns:s="library://ns.adobe.com/flex/spark" 
                  xmlns:mx="library://ns.adobe.com/flex/mx">
   

   <mx:Form x="22" y="22" width="493">
      <mx:HBox>
         <mx:Label text="USER ID" />
         <mx:TextInput id="userid" />
      </mx:HBox>
      <mx:HBox>
         <mx:Label text="USER NAME" />
         <mx:TextInput id="username" />
      </mx:HBox>
      <mx:HBox>
         <mx:Label text="Email Address" />
         <mx:TextInput id="mail" />
      </mx:HBox>
      <mx:Button label="Submit" click="send_data()" />
   </mx:Form>   
   
   <mx:DataGrid id="dgUserRequest" x="22" y="168" dataProvider="{userRequest.lastResult.users.user}">
      <mx:columns>
         <mx:DataGridColumn headerText="User ID" dataField="userid" />
         <mx:DataGridColumn headerText="User Name" dataField="username" />
      </mx:columns>
   </mx:DataGrid>   
   
   <mx:TextInput x="243" y="197" id="selectedmailaddress" text="{dgUserRequest.selectedItem.mail}" />
   
   <fx:Declarations>
   <s:HTTPService id="userRequest" url="http://jokbo1.ss-ast.net/WEB_JOKBO/AnjungNa/flextophp.php" method="POST" showBusyCursor="true" useProxy="false" fault="faultHandler(event)">
      <s:request xmlns="">
         <userid>{userid.text}</userid>
         <username>{username.text}</username>
         <mail>{mail.text}</mail>
      </s:request>
   </s:HTTPService>
   </fx:Declarations>      


< fx:Script>
   <![CDATA[
      import mx.collections.ArrayCollection;
      import mx.controls.Alert;
      import mx.events.FlexEvent;
      import mx.managers.CursorManager;
      import mx.rpc.events.FaultEvent;
      import mx.rpc.events.ResultEvent;
      
      private function send_data():void {
         userRequest.send();
      }
      
      
      //----------------------------------------------------------------------------------------------------
      // WebServer 연결 실패
      public function faultHandler(event:FaultEvent):void {
         Alert.show("통신연결 지연 실패 : "+event.toString(),"메세지");
      }
      //----------------------------------------------------------------------------------------------------
   ]]>
< /fx:Script>   

< /s:WindowedApplication>


'Language > Flex' 카테고리의 다른 글

[ Flex ] SQLite 기초 강좌  (0) 2015.11.29
[ Flex ] Flex Builder 3 와 LCDS 연결하기 ( 톰켓이용 )  (0) 2015.11.29
[ Flex ] ArrayCollection 데이터 추가  (0) 2015.11.29
[ Flex ][ UIComponent ] ComboBox  (0) 2015.11.29
[ Flex ] DataGrid  (0) 2015.11.29
Total
Today
Yesterday
최근에 올라온 글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31