채택완료

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

2017-06-15 (목) 16:38:42 2,851

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

아래는 코드 원문입니다.

Copy
<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개 / 댓글 2개

채택된 답변
+20 포인트
Copy
/*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; //확인

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


이런 쿼리문은 없습니다


​ 

답변에 대한 댓글 1개

2017-06-15 (목) 20:32:01
네 그거까지는 찾았습니다. 그래서 ajax로 처리하려고 하고있어요 답변 감사합니다.

만약에 ajax가 아니라 저렇게 궂이 한다면 어떻게 해야하나요??
2017-06-15 (목) 17:08:15

$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를 '' 로 한번 감싸보세요

답변에 대한 댓글 1개

2017-06-15 (목) 17:18:32
감싸도 안나오더라구요ㅜㅜ 흙흙
자료형도 string이랑 int 형으로 변경해보아도 안되요 ㅜㅜ

답변을 작성하려면 로그인이 필요합니다.