힘들다 php 넘 어려워 도와주세요 정보
힘들다 php 넘 어려워 도와주세요본문
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=76704&sca=&sfl=wr_subject&stx=%BA%CE%B5%BF%BB%EA&sop=and
페르소나님의 부동산스킨을 다운받아 설치 하였습니다.
지역검색 에서
전남 - 순천 - 토지
를 맞추면 에러가
게시판에는 위같이 입력되있는데...
에러내용
select distinct wr_parent from g4_write_state where ((INSTR(concat(wr_5, '전남')) and (INSTR(concat(wr_5, '순천시')) and (INSTR(concat(wr_5, '토지')) ) and wr_is_comment = '0' and (wr_num between '-3' and '9997')
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') and (INSTR(concat(wr_5, '순천시')) and (INSTR(concat(wr_5, '토지')) ) an' at line 1
error file : /addang/bbs/board.php
스킨이 잘못되었나요?
아님 제 홈피에 문제가?
g4_zip는 위처럼 import 시켯습니다.
지역검색 내용도 다 나오고요, 헌데 결과 쪽에서 문제가?
--------------------------------------------------------------------------------------
다음은 훙이님이 답변해주신 내용입니다.
syntax에러네요...
select distinct wr_parent from g4_write_state where (*1* (*2* INSTR(*3* concat(*4* wr_5, '전남'*4*) *3*) and (*5* INSTR(*6* concat(*7* wr_5, '순천시' *7*) *6*) and (*8* INSTR(*9* concat(*10* wr_5, '토지' *10*) *9*) *8*) and wr_is_comment = '0' and (*11* wr_num between '-3' and '9997' *11*)
남아있는게.... 1 하고 2 그리고 5번 괄호가 마무리가 안된듯 싶은데요...
g4_write_state where (( <----
and (<-- INSTR(concat(wr_5, '순천시'
스킨내에서 한번 쿼리문 부분을 함 찾아보세요..
저도 스킨과 g4_zip를 설치해봤습니다. 동일한 증상이 있더군요...
이리저리 추적해본결과
config.list_select2.php에서
<td>+ 지역검색 :
<input type=hidden name=sfl value="concat(wr_5,wr_14)">
부분이 있습니다. 보시다 시피
value=concat(wr_5,wr_14)의 값을 가지고 있고
맨마지막 셀렉트 선택을 하게되면
onChangeKey()를 호출하게 됩니다. 그리고 전송을하게되죠
그러면 list.php파일을 읽어오게 되는데요
그과정에서
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
부분을 호출하게 됩니다.
$sfl에는 concat(wr_5, wr_14)라는 값이 있고
$stx에는 지역(시) 지역(도) 분류
의 값이 들어가게 됩니다.
그러면 common.lib.php파일의 get_sql_search함수를 호출하게 되죠
그러면 그 과정에서 $tmp = explode(",", trim($search_field));
부분이 있습니다.
만약 정상동작하는 원래대로의 쿼리문이라면
select distinct wr_parent from g4_write_test where ((INSTR( --> concat(wr_5, wr_14) <-- , '부산')) and (INSTR( --> concat(wr_5,wr_14) <-- , '남구')) and (INSTR(--> concat(wr_5, wr_14) <--, '토지')) ) and wr_is_comment = '0' and (wr_num between '-3' and '9997')
common.lib.php파일의 get_sql_search함수의 $tmp = explode(",", trim($search_field));
부분에서
concat(wr_5,wr_14) 를 --> , <-- 를 기준으로 분리해서 wr_14)가 잘리게 되고
쿼리문에는
concat(wr_5, 많이 들어가게 되는 것입니다.
일단 제가 추적한 부분은 여기까지 인데요. 페르소나님의 링크를 따라가면 정상동작하고 있으니 제가 헛짓 한것일수도 있습니다. 우선은 저도 이정도에서 다른분들의 도움을 받아야 할거 같군요.
-------------------------------------------------------------------------------------
다음 에러를 잡아주실 고수분은 안계신가요?
도와주세요
페르소나님의 부동산스킨을 다운받아 설치 하였습니다.
지역검색 에서
전남 - 순천 - 토지
를 맞추면 에러가
게시판에는 위같이 입력되있는데...
에러내용
select distinct wr_parent from g4_write_state where ((INSTR(concat(wr_5, '전남')) and (INSTR(concat(wr_5, '순천시')) and (INSTR(concat(wr_5, '토지')) ) and wr_is_comment = '0' and (wr_num between '-3' and '9997')
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') and (INSTR(concat(wr_5, '순천시')) and (INSTR(concat(wr_5, '토지')) ) an' at line 1
error file : /addang/bbs/board.php
스킨이 잘못되었나요?
아님 제 홈피에 문제가?
g4_zip는 위처럼 import 시켯습니다.
지역검색 내용도 다 나오고요, 헌데 결과 쪽에서 문제가?
--------------------------------------------------------------------------------------
다음은 훙이님이 답변해주신 내용입니다.
syntax에러네요...
select distinct wr_parent from g4_write_state where (*1* (*2* INSTR(*3* concat(*4* wr_5, '전남'*4*) *3*) and (*5* INSTR(*6* concat(*7* wr_5, '순천시' *7*) *6*) and (*8* INSTR(*9* concat(*10* wr_5, '토지' *10*) *9*) *8*) and wr_is_comment = '0' and (*11* wr_num between '-3' and '9997' *11*)
남아있는게.... 1 하고 2 그리고 5번 괄호가 마무리가 안된듯 싶은데요...
g4_write_state where (( <----
and (<-- INSTR(concat(wr_5, '순천시'
스킨내에서 한번 쿼리문 부분을 함 찾아보세요..
저도 스킨과 g4_zip를 설치해봤습니다. 동일한 증상이 있더군요...
이리저리 추적해본결과
config.list_select2.php에서
<td>+ 지역검색 :
<input type=hidden name=sfl value="concat(wr_5,wr_14)">
부분이 있습니다. 보시다 시피
value=concat(wr_5,wr_14)의 값을 가지고 있고
맨마지막 셀렉트 선택을 하게되면
onChangeKey()를 호출하게 됩니다. 그리고 전송을하게되죠
그러면 list.php파일을 읽어오게 되는데요
그과정에서
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
부분을 호출하게 됩니다.
$sfl에는 concat(wr_5, wr_14)라는 값이 있고
$stx에는 지역(시) 지역(도) 분류
의 값이 들어가게 됩니다.
그러면 common.lib.php파일의 get_sql_search함수를 호출하게 되죠
그러면 그 과정에서 $tmp = explode(",", trim($search_field));
부분이 있습니다.
만약 정상동작하는 원래대로의 쿼리문이라면
select distinct wr_parent from g4_write_test where ((INSTR( --> concat(wr_5, wr_14) <-- , '부산')) and (INSTR( --> concat(wr_5,wr_14) <-- , '남구')) and (INSTR(--> concat(wr_5, wr_14) <--, '토지')) ) and wr_is_comment = '0' and (wr_num between '-3' and '9997')
common.lib.php파일의 get_sql_search함수의 $tmp = explode(",", trim($search_field));
부분에서
concat(wr_5,wr_14) 를 --> , <-- 를 기준으로 분리해서 wr_14)가 잘리게 되고
쿼리문에는
concat(wr_5, 많이 들어가게 되는 것입니다.
일단 제가 추적한 부분은 여기까지 인데요. 페르소나님의 링크를 따라가면 정상동작하고 있으니 제가 헛짓 한것일수도 있습니다. 우선은 저도 이정도에서 다른분들의 도움을 받아야 할거 같군요.
-------------------------------------------------------------------------------------
다음 에러를 잡아주실 고수분은 안계신가요?
도와주세요
추천
0
0
댓글 2개

select distinct wr_parent from g4_write_state where
(
( INSTR ( concat ( wr_5, '전남' ) ) and <- 가로하나빠짐
( INSTR ( concat ( wr_5, '순천시' ) ) and <- 가로하나빠짐
( INSTR (concat (wr_5, '토지' ) ) <- 가로하나빠짐
)
and
wr_is_comment = '0' and (wr_num between '-3' and '9997')
위 쿼리를 저러케 한줄씩 나눠노면 가로가 세개 빠졌군요
(
( INSTR ( concat ( wr_5, '전남' ) ) and <- 가로하나빠짐
( INSTR ( concat ( wr_5, '순천시' ) ) and <- 가로하나빠짐
( INSTR (concat (wr_5, '토지' ) ) <- 가로하나빠짐
)
and
wr_is_comment = '0' and (wr_num between '-3' and '9997')
위 쿼리를 저러케 한줄씩 나눠노면 가로가 세개 빠졌군요
페르소나님소스의 어느부분을 수정해야 하나요?
---------------------------------------------------------------------
script language="javascript">
<!--//-- 스킨용 : 주소 셀렉트창 (대도시,구.군,여유필드]
var cat1_info = new Array, cat2_info = new Array;
var cat2_num = new Array;
cat1_info[1] = { serial:11, name:'서울' }
cat1_info[2] = { serial:21, name:'부산' }
cat1_info[3] = { serial:22, name:'대구' }
cat1_info[4] = { serial:23, name:'인천' }
cat1_info[5] = { serial:24, name:'광주' }
cat1_info[6] = { serial:25, name:'대전' }
cat1_info[7] = { serial:26, name:'울산' }
cat1_info[8] = { serial:41, name:'경기' }
cat1_info[9] = { serial:42, name:'강원' }
cat1_info[10] = { serial:43, name:'충북' }
cat1_info[11] = { serial:44, name:'충남' }
cat1_info[12] = { serial:45, name:'전북' }
cat1_info[13] = { serial:46, name:'전남' }
cat1_info[14] = { serial:47, name:'경북' }
cat1_info[15] = { serial:48, name:'경남' }
cat1_info[16] = { serial:49, name:'제주' }
<?
for ($i = 0; $i < 16; $i++) {
switch ($i) {
case (0) : $area_code = '11'; $area_name = '서울'; break;
case (1) : $area_code = '21' ; $area_name = '부산'; break;
case (2) : $area_code = '22' ; $area_name = '대구'; break;
case (3) : $area_code = '23' ; $area_name = '인천'; break;
case (4) : $area_code = '24' ; $area_name = '광주'; break;
case (5) : $area_code = '25' ; $area_name = '대전'; break;
case (6) : $area_code = '26' ; $area_name = '울산'; break;
case (7) : $area_code = '41' ; $area_name = '경기'; break;
case (8) : $area_code = '42' ; $area_name = '강원'; break;
case (9) : $area_code = '43' ; $area_name = '충북'; break;
case (10) : $area_code = '44' ; $area_name = '충남'; break;
case (11) : $area_code = '45' ; $area_name = '전북'; break;
case (12) : $area_code = '46' ; $area_name = '전남'; break;
case (13) : $area_code = '47' ; $area_name = '경북'; break;
case (14) : $area_code = '48' ; $area_name = '경남'; break;
case (15) : $area_code = '49' ; $area_name = '제주'; break;
}
$query1 = "Select distinct(zp_gugun) From g4_zip Where zp_sido = '$area_name'";
$req1 = sql_query($query1);
if(!$req1) {
exit;
}
$cnt = mysql_num_rows($req1);
?>
cat2_num[<?echo($i+1);?>] = <?echo($cnt);?>;
cat2_info[<?echo($i+1);?>] = new Array;
<?
$j = 0;
while ($rs1 = mysql_fetch_array($req1)) {
$region_name = $rs1[0];
$region_name = trim($region_name);
?>
cat2_info[<?echo($i+1);?>][<?echo($j);?>] = { serial:<?echo $area_code; ?>, name:'<?echo($region_name);?>' };
<?
$j++;
} // while loop end
} // for loop end
?>
function onChangeCat1( cat1 ){
document.fsearch_area.region_name.options.length = cat2_num[cat1] + 1;
document.fsearch_area.region_name.options[0] = new Option( '전지역', '', true, true );
document.fsearch_area.region_name.options[0].value = cat1_info[cat1].name;
for( var i=0; i<cat2_num[cat1]; i++ ){
document.fsearch_area.region_name.options[i+1] = new Option( cat2_info[cat1][i].name, cat2_info[cat1][i].serial );
document.fsearch_area.region_name.options[i+1].value = cat1_info[cat1].name + " " + cat2_info[cat1][i].name;
if( cat2_info[cat1][i].serial == 1 ) {
document.fsearch_area.region_name.options[i+1].selected = true;
}
}
}
//-- wr_3, wr_6 등 중복셀렉트가 가능하게 해주는 함수
//-- 수정작업시, 아래 함수와 함께 write.skin.php에 사용된 '여유필드(wr_?)이름과 셀렉트문'을 가져와 붙이면 바로적용가능
//-- 단, 반드시 게시물리스트(list.skin.php)에 여유필드값이 게시물에 주어져야함.
//-- 중복필드가 필요없는 경우 'document.fsearch_area.srch_type.value'삭제, 셀렉트문삭제, value값에서 영필드명삭제
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
//-->
</script>
<table cellpadding=0 cellspacing=0 border=0>
<form name=fsearch_area method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<tr>
<td>+ 지역검색 :
<input type=hidden name=sfl value="concat(wr_5,wr_14)">
<select name=area_name onChange="onChangeCat1(document.fsearch_area.area_name.value)">
<option value="" selected>1차 지역선택</option>
<option value=1>서울특별시</option>
<option value=2>부산광역시</option>
<option value=3>대구광역시</option>
<option value=4>인천광역시</option>
<option value=5>광주광역시</option>
<option value=6>대전광역시</option>
<option value=7>울산광역시</option>
<option value=8>경기도</option>
<option value=9>강원도</option>
<option value=10>충청북도</option>
<option value=11>충청남도</option>
<option value=12>전라북도</option>
<option value=13>전라남도</option>
<option value=14>경상북도</option>
<option value=15>경상남도</option>
<option value=16>제주도</option>
</select>
<select name=region_name>
<option value="">2차 구.군선택</option>
</select>
<select name=srch_type onChange="onChangeKey()">
<option selected value=''>매물분류</option>
<option value='빌딩/건물'>빌딩/건물</option>
<option value='상가'>상가</option>
<option value='주택'>주택</option>
<option value='주상복합'>주상복합</option>
<option value='토지'>토지</option>
<option value='전답'>전답</option>
<option value='재개발'>재개발</option>
<option value='공장/창고'>공장/창고</option>
</select>
<input type=hidden name=sop value='and'>
<input type=hidden name=stx value=''>
</td>
</tr>
</form>
</table>
<?
if ($area_name != "") { $stx = ""; }
?>
-------------------------------------------------------------------
ㅜ.ㅜ
---------------------------------------------------------------------
script language="javascript">
<!--//-- 스킨용 : 주소 셀렉트창 (대도시,구.군,여유필드]
var cat1_info = new Array, cat2_info = new Array;
var cat2_num = new Array;
cat1_info[1] = { serial:11, name:'서울' }
cat1_info[2] = { serial:21, name:'부산' }
cat1_info[3] = { serial:22, name:'대구' }
cat1_info[4] = { serial:23, name:'인천' }
cat1_info[5] = { serial:24, name:'광주' }
cat1_info[6] = { serial:25, name:'대전' }
cat1_info[7] = { serial:26, name:'울산' }
cat1_info[8] = { serial:41, name:'경기' }
cat1_info[9] = { serial:42, name:'강원' }
cat1_info[10] = { serial:43, name:'충북' }
cat1_info[11] = { serial:44, name:'충남' }
cat1_info[12] = { serial:45, name:'전북' }
cat1_info[13] = { serial:46, name:'전남' }
cat1_info[14] = { serial:47, name:'경북' }
cat1_info[15] = { serial:48, name:'경남' }
cat1_info[16] = { serial:49, name:'제주' }
<?
for ($i = 0; $i < 16; $i++) {
switch ($i) {
case (0) : $area_code = '11'; $area_name = '서울'; break;
case (1) : $area_code = '21' ; $area_name = '부산'; break;
case (2) : $area_code = '22' ; $area_name = '대구'; break;
case (3) : $area_code = '23' ; $area_name = '인천'; break;
case (4) : $area_code = '24' ; $area_name = '광주'; break;
case (5) : $area_code = '25' ; $area_name = '대전'; break;
case (6) : $area_code = '26' ; $area_name = '울산'; break;
case (7) : $area_code = '41' ; $area_name = '경기'; break;
case (8) : $area_code = '42' ; $area_name = '강원'; break;
case (9) : $area_code = '43' ; $area_name = '충북'; break;
case (10) : $area_code = '44' ; $area_name = '충남'; break;
case (11) : $area_code = '45' ; $area_name = '전북'; break;
case (12) : $area_code = '46' ; $area_name = '전남'; break;
case (13) : $area_code = '47' ; $area_name = '경북'; break;
case (14) : $area_code = '48' ; $area_name = '경남'; break;
case (15) : $area_code = '49' ; $area_name = '제주'; break;
}
$query1 = "Select distinct(zp_gugun) From g4_zip Where zp_sido = '$area_name'";
$req1 = sql_query($query1);
if(!$req1) {
exit;
}
$cnt = mysql_num_rows($req1);
?>
cat2_num[<?echo($i+1);?>] = <?echo($cnt);?>;
cat2_info[<?echo($i+1);?>] = new Array;
<?
$j = 0;
while ($rs1 = mysql_fetch_array($req1)) {
$region_name = $rs1[0];
$region_name = trim($region_name);
?>
cat2_info[<?echo($i+1);?>][<?echo($j);?>] = { serial:<?echo $area_code; ?>, name:'<?echo($region_name);?>' };
<?
$j++;
} // while loop end
} // for loop end
?>
function onChangeCat1( cat1 ){
document.fsearch_area.region_name.options.length = cat2_num[cat1] + 1;
document.fsearch_area.region_name.options[0] = new Option( '전지역', '', true, true );
document.fsearch_area.region_name.options[0].value = cat1_info[cat1].name;
for( var i=0; i<cat2_num[cat1]; i++ ){
document.fsearch_area.region_name.options[i+1] = new Option( cat2_info[cat1][i].name, cat2_info[cat1][i].serial );
document.fsearch_area.region_name.options[i+1].value = cat1_info[cat1].name + " " + cat2_info[cat1][i].name;
if( cat2_info[cat1][i].serial == 1 ) {
document.fsearch_area.region_name.options[i+1].selected = true;
}
}
}
//-- wr_3, wr_6 등 중복셀렉트가 가능하게 해주는 함수
//-- 수정작업시, 아래 함수와 함께 write.skin.php에 사용된 '여유필드(wr_?)이름과 셀렉트문'을 가져와 붙이면 바로적용가능
//-- 단, 반드시 게시물리스트(list.skin.php)에 여유필드값이 게시물에 주어져야함.
//-- 중복필드가 필요없는 경우 'document.fsearch_area.srch_type.value'삭제, 셀렉트문삭제, value값에서 영필드명삭제
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
//-->
</script>
<table cellpadding=0 cellspacing=0 border=0>
<form name=fsearch_area method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<tr>
<td>+ 지역검색 :
<input type=hidden name=sfl value="concat(wr_5,wr_14)">
<select name=area_name onChange="onChangeCat1(document.fsearch_area.area_name.value)">
<option value="" selected>1차 지역선택</option>
<option value=1>서울특별시</option>
<option value=2>부산광역시</option>
<option value=3>대구광역시</option>
<option value=4>인천광역시</option>
<option value=5>광주광역시</option>
<option value=6>대전광역시</option>
<option value=7>울산광역시</option>
<option value=8>경기도</option>
<option value=9>강원도</option>
<option value=10>충청북도</option>
<option value=11>충청남도</option>
<option value=12>전라북도</option>
<option value=13>전라남도</option>
<option value=14>경상북도</option>
<option value=15>경상남도</option>
<option value=16>제주도</option>
</select>
<select name=region_name>
<option value="">2차 구.군선택</option>
</select>
<select name=srch_type onChange="onChangeKey()">
<option selected value=''>매물분류</option>
<option value='빌딩/건물'>빌딩/건물</option>
<option value='상가'>상가</option>
<option value='주택'>주택</option>
<option value='주상복합'>주상복합</option>
<option value='토지'>토지</option>
<option value='전답'>전답</option>
<option value='재개발'>재개발</option>
<option value='공장/창고'>공장/창고</option>
</select>
<input type=hidden name=sop value='and'>
<input type=hidden name=stx value=''>
</td>
</tr>
</form>
</table>
<?
if ($area_name != "") { $stx = ""; }
?>
-------------------------------------------------------------------
ㅜ.ㅜ