php 변수에 스크립트 결과값을 대입해 쿼리를 날리는데 질문이있습니다.

php 변수에 스크립트 결과값을 대입해 쿼리를 날리는데 질문이있습니다.

QA

php 변수에 스크립트 결과값을 대입해 쿼리를 날리는데 질문이있습니다.

답변 3

본문

php 변수에 script 결과를 대입해서 쿼리를 날리는데 쿼리가 정상적으로 작동하지 않아서요..

아래는 코드 원문입니다.

 


<div class="date_ym">2017 년 06 월</div>
$date_1 ='<script>var mon = $(".date_ym").text().replace(" 년 ","").substring(4).replace(" 월","");var year = $(".date_ym").text().replace(" 월","").substring(0,4);if(mon<10){mon ="0"+mon;}document.write(year+mon);</script>'; 
 
$qry  = "select  * from [table] where $date_1 <= left(wr_1,6) or $date_1 <=  left(wr_2,6) group by wr_1 order by wr_1 ASC LIMIT 0, $limit"; 

<div>값은 항상 바뀌는 값이기때문에 임시로 고정값을 주었습니다.

 

echo 로 $date_1 를 찍으면 201706 이런식으로 표시가 잘됩니다.

쿼리를 날릴때 다르게 해주어야할 것이있나요?

이 질문에 댓글 쓰기 :

답변 3


/*
input 태그를 이용 하지 않으시고 
혹 2017 년 06월이 php 변수로 되어있다면
$temp_date="2017 년 06 월"; 
*/
$ex_temp=explode("년", $temp_date);
$year=intval($ex_temp[0]);
$mon=intval($ex_temp[1]);
$mon=($mon<10)?"0".$mon:$mon;
$date_1 = $year.$mon;
//echo $date_1; //확인

$qry  "select  * from [table] where '$date_1' <= left(wr_1,6) or '$date_1' <=  left(wr_2,6) group by wr_1 order by wr_1 ASC LIMIT 0, $limit" 


$date_1를 '' 로 한번 감싸보세요

echo 로 $date_1 를 찍으면 201706 이런식으로 표시가 잘됩니다<--그거야 echo 된

<script>~~~</script>​를 브라우저에서 실행하니 document.write가 실행 되어서 결과값이 출력이 되겠죠

그런데 저 $date_1 이라는 변수의 값을 쿼리문에 넣으면​ 쿼리문속에서 자바스크립트가 실행될 리가 없죠

자바스크립트는 브라우저에서 실행 되는 것인데 쿼리문은 서버에서 실행되는 것이니

결국 이런 쿼리를 실행하는 것 아니겠어요?

select  * from [table] where '<script>var mon = $(".date_ym").text().replace(" 년 ","")~~document.write(year+mon);</script>' <= left(wr_1,6)~~


이런 쿼리문은 없습니다


 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 172
© SIRSOFT
현재 페이지 제일 처음으로