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

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

QA

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

본문

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)~~


이런 쿼리문은 없습니다


 

답변을 작성하시기 전에 로그인 해주세요.
전체 171
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT