우선 기본 구조는 유니티에서 php로 정보를 보내고 php에서 정보를 토대로 mysql에 쿼리를 보내서 (혹은 프로시저를 호출해서) 정보를 받고 다시 유니티에 보내는 방식이다.
일단 유니티에서 php를 호출 하는 코루틴
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //맵 정보 검색하기 private IEnumerator GetMapInfos(string word) { WWWForm form = new WWWForm();//php에 보낼 폼을 만듦 //전해줄 정보 입력 form.AddField("way", searchWay.ToString()); form.AddField("word", word); WWW webRequest = new WWW("http://127.0.0.1/GetMapInfo.php",form);//127.0.0.1은 로컬 호스트 주소 yield return webRequest;//정보가 올 때까지 기다림 if (webRequest.isDone)//잘되면 { ShowResult(webRequest.text); } else//안되면 { Debug.Log(webRequest.error); } } | cs |
쓸 때는 그냥 코루틴 호출 하듯이 하면 된다.
php소스 (apmSetup을 사용한다면 C:\APM_Setup\htdocs)안에 파일을 넣으면 된다.)
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | <?php $way = $_POST['way']; //검색 방법 (0 = id 1 = 이름 2 = 제작자) $word = $_POST['word']; //검색문 //xml로 반환을 위함 $xmlout = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"; $xmlout .= "<mapinfos>"; //mysql연결 $connect = mysql_connect("127.0.0.1","root","apmsetup") or die("connect fail!".mysqli_error()); if(!$connect) die("connect fail!".mysql_error()); mysql_select_db ("test",$connect);//데이터베이스 사용 //쿼리 호출 방법 if($way == "0")//1 = id검색 $sql = "SELECT * FROM testable WHERE id = '".$word."'"; else if($way == "1")//2 = 이름 검색 $sql = "SELECT * FROM testable WHERE name LIKE '%".$word."%'"; else //3 = 제작자 검색 $sql = "SELECT * FROM testable WHERE maker LIKE '%".$word."%'"; $result = mysql_query($sql,$connect); while($row = mysql_fetch_array($result)) { $xmlout .= "<info>"; $xmlout .= "<id>".$row['id']."</id>"; $xmlout .= "<maker>".$row['maker']."</maker>"; $xmlout .= "<name>".$row['name']."</name>"; $xmlout .= "<map>".$row['map']."</map>"; $xmlout .= "</info>\n"; } $xmlout.= "</mapinfos>"; echo $xmlout; mysql_free_result($result);//결과 지우기 mysql_close($connect);//db와 연결 끊기 ?> | cs |
php에 select 결과를 xml로 뽑아주는 플러그인? 이 있다고 하는데 우선 야매로 처리했다.
(xml 사용법은 이전 블로그 글 참고)
테이블 구조
테이블 만드는 쿼리
1 2 3 4 5 6 7 | create table ( id int(5) unsigned zerofill not null auto_increment, #자동증가 되는 id maker varchar(30) not null, #제작자 name varchar(30) not null, #맵 이름 map text not null, #맵 정보 primary key(id) ); | cs |
참고로 cmd로 쿼리를 입력할 때는 주석이 오류를 낸다.(다른 방식으로 하면 되는지는 모르겠음)
방법찾음
결과
참고로 웹 결과에는 <>안에 있는 내용이 나오지 않는다.
xml을 보기 편하게 해주는 헤더가 있다고 해서 시도해 봤는데 시간만 줄창 날렸다.
어차피 유니티에서는 잘 작동하니깐 시간 낭비할 필요는 없을 거 같다.
내가 시도해 보려고 한 유튜브 튜토리얼
'프로그래밍 > SQL' 카테고리의 다른 글
mysql Limit (0) | 2017.10.22 |
---|---|
sql의 주석 (0) | 2017.10.19 |
mysql 자동증가값(auto_increment) 가지고 오기 (0) | 2017.10.13 |
오늘 새로배운 mysql 정리 (0) | 2017.10.12 |
sql 메모 (0) | 2017.10.11 |