묻고답하기
XML쿼리 내에서 게시물 여러개 선택할 수 있는 방법이 있을까요?
2014.05.21 00:30
제목이 곧 내용입니다 --;
XML쿼리로 여러개의 게시물을 가져와야되는데, 마땅하게 방법이 생각이 안나네요..
그냥 쿼리 하나하나 넣어야되는수밖엔 없을까요? ㅠㅠ
댓글 7
-
prologos
2014.05.21 01:24
-
mAKEkr
2014.05.21 01:31
아 배열로 넘길수가 있었네요.. 감사합니다 ㅠㅠ
-
애니즌
2014.05.21 02:10
오.. 이게 뭔가요... :)
구..궁금합니다. 실례가 안된다면 좀 더 자세히 설명가능할까요?
이렇게 하면 두개의 게시판의 내용을 불러올 수도 있는 건가용?
-
prologos
2014.05.21 02:25
예로 현재 getDocument.xml의 내용을 살펴보면 아래와 같습니다.
<query id="getDocument" action="select">
<tables>
<table name="documents" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
</conditions>
</query>
operation을 equal을 사용하고 있어서 이것을 쿼리로 한다면
select * from xe_documents where document_srl=70 //document_srl이 70번인 게시글을 결과로 받습니다.
그런데 operation을 in으로 사용면 해당 컬럼의 조건을 array를 이용해서 다수로 받을 수 있습니다.
select * from xe_documents where document_srl in (70,71,72) //document_srl 70과 71 그리고 72의 게시글을 결과로 받아볼 수 있습니다.
-
애니즌
2014.05.21 02:28
쉽게 생각하면 document_list나 comment_list 같은 녀석을 만드는 놈(?) 이군요 !
덕분에 쏙쏙 이해했습니다 :)
감사합니다!
-
prologos
2014.05.21 02:56
네 그렇게도 사용가능하고 말씀하신대로 여러 게시판의 글을 한번에 불러 올수도 있고요.
in반대개념인 notin도 사용가능합니다. in이나 not in은 주로 다중 select문을 사용해서 쿼리를 구성할때 사용합니다.
select * from xe_documents where module_srl not in (select module_srl from xe_documents where member_srl=111 group by module_srl)
위처럼 쿼리를 구성했다면 회원번호 111인 사람이 글을 작성한적이 없는 모듈의 모든 글을 가져오게 됩니다 @.@
-
애니즌
2014.05.21 03:10
우와 +_+ 신기합니다 !!! sql 과 php 세계는 알면 알수록 재밌군요 !!
다만~~ 아직 실제로 사용을 안해봐서 그런지 딱 와닿진 않는군요..
뭐든 직접 해봐야 이해하는 성격이라..-_-;;; 조만간 알려주신 방법으로 뭐 좀 구현 해봐야 겠네요 :)
operation="in"을 사용하면 되지 않나요?
<condition operation="in" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
호출할때는 배열로...
$args->document_srl = array(70, 71);