포럼
직접 쿼리를 날려서 값을 구하는데 ....
2012.10.11 11:09
아래와 같이 회원별 회비 납입 합계를 구하는 쿼리를 작성하였는데...
붉은색 회원의 이름을 가져오는 변수를 지정하면 값이 출력 안되네요..
$logged_info->user_name 이 변수대신 직접 이름을 "홍길동"으로 지정하면 정상적으로 값이 출력고요...
무엇이 문제 일까요???
{@
$oDB = &DB::getInstance();
$query = $oDB->_query('SELECT sum(value) as in_sum_mem FROM xe_document_extra_vars WHERE document_srl IN (SELECT document_srl FROM xe_document_extra_vars WHERE (value = "$logged_info->user_name")) AND eid = "ad_in" AND module_srl = 152 ');
$result = $oDB->_fetch($query);
$sum_in_mem = (int)$result->in_sum_mem;
}
댓글 5
-
SCAC
2012.10.11 11:20
-
김포머슴
2012.10.11 11:58
SCAC 님 감사합니다. module_srl = 152" 여기가 이중따옴표로 되어있어서 에러났는데.. ' 로 바꾸니 정상적으로 값이 출력 됩니다.. 한참을 고민했었는데 님 덕택에 쉽게 해결됐습니다..
그런데 혹시 위 소스에 대한 설명좀 간단히 부탁드려도 될까요? 제가 작성한 소스가 왜 안돼는건지 잘 이해를 못하는 중이라서요.....
-
showjean
2012.10.11 13:40
$logged_info->user_name
가 변수로 보이지만 작은 따옴표 안에 들어가서 문자열로 인식이 되어서 그렇습니다. 약간 수정한다면
value = "' . $logged_info->user_name . '"
이렇게 문자열 밖으로 빼줘야하겠죠.
-
ToFinder
2012.10.11 15:21
뭐지 이 고차원적인 대화는 ㅠㅠ;;
-
숭숭군
2012.10.11 16:06
어느정도 공감함니다...ㅜㅜ ㅋㅋㅋ
$query2 = sprintf('SELECT sum(value) as in_sum_mem FROM xe_document_extra_vars WHERE document_srl IN (SELECT document_srl FROM xe_document_extra_vars WHERE (value = "%s")) AND eid = "ad_in" AND module_srl = 152", $logged_info->user_name);
$query = $oDB->_query($query2);
로 해보세요.