우선 기본 구조는 유니티에서 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(5unsigned zerofill not null auto_increment#자동증가 되는 id
    maker varchar(30not null#제작자
    name varchar(30not 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
블로그 이미지

stuban

ㅇ.ㅇ

,