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개 / 댓글 2개
/*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개
$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개
자료형도 string이랑 int 형으로 변경해보아도 안되요 ㅜㅜ
답변을 작성하려면 로그인이 필요합니다.
만약에 ajax가 아니라 저렇게 궂이 한다면 어떻게 해야하나요??