그누어린이입니다. 아죠씨들에게 질문 좀 드릴게요~
본문
도움으로 거의 정상까지 왔습니다. 그런데 한가지가 막힙니다. 흑흑
1.버튼을 누르면 모달창띄우고 select까지는 했습니다.
2.문제는 모달창스킨은 하나만 쓰는데 select구문중에
sending_idx in ('1')
버튼값이 1~10까지 있는데 갈호안의 숫자를 버튼누를때 ajax로 보내서
아래코드식으로
<?php
$list = array();
$result = sql_query("SELECT wr_name, wr_id, g5_sending WHERE sending_idx in ('1') and `wr_id` = $write[wr_id] order by wr_datetime ");
for($i=0;$row = sql_fetch_array($result);$i++){
$list[] = $row;
}
?>
이상태에서는 sending_idx에 1값이 있는 데이터 잘 출력되는데요
이걸
<?php
$list = array();
$sending_idx = $_POST['sending_idx'];
$result = sql_query("SELECT wr_name, wr_id, g5_sending WHERE sending_idx in ('{$sending_idx}') and `wr_id` = $write[wr_id] order by wr_datetime ");
for($i=0;$row = sql_fetch_array($result);$i++){
$list[] = $row;
}
?>
이렇게 변수로 해보려하니 안되네요..도움기다려봅니다..그누어린이가 뭘하려니 아주 어려버요,,흑흑
버튼 누르는 값에 따라 3, 7, 6 등 ajax로 잘 가는지 console에는 잘 표시됩니다.
말하자면 버튼1~10중 해당버튼 누를때 모달창에는 sending_idx in ('해당숫자')
가 있는 데이터만 뿌려주고 싶다는 것입니다.
답변 1
$sending_idx = $_POST['sending_idx'];
$result = sql_query("SELECT wr_name, wr_id, g5_sending WHERE sending_idx in ('{$sending_idx}') and `wr_id` = $write[wr_id] order by wr_datetime ");
두문장만 보고 이야기를 드리면
문제가 있어보입니다.
$_POST['sending_idx'];
여기에 넘어가는값이
숫자 1개면 상관이 없지만
멀티의 값 3,7,6 과 같이 , 가 포함된 값이라면
위의 내용은 작동하지 않습니다.
왜냐면
WHERE sending_idx in ('{$sending_idx}')
의 구조라서 그렇습니다. 3,7,6 일때
위 문장을 DB에서 적용되는 코드는
WHERE sending_idx in ('3,7,6') 으로 인식됩니다.
'3,7,6' 의 값은 , 와 무관하게
문자열이 됩니다
즉, 3,7,6의 값을 갖는 문자열이라는 의미이고
sending_idx에 ,를 포함한 값이 없다면 절대 나올수 없어보입니다.
sending_idx가 int값을 갖는다면
더더욱 오류입니다.
따라서 (db 컬럼의 유형을 알수없기에 추측이지만)
WHERE sending_idx in ('{$sending_idx}')
는
WHERE sending_idx in ({$sending_idx})
가 되어야 정상작동하지 않을까 생각됩니다.
물론, 넘겨주는값이 3,7,6 이라는 구조의 멀티값이나 3 과 같은 숫자이고 sending_idx가 int값과 같은 구조일때를 적용해보세요