배열 관련 질문드립니다ㅠㅠ
본문
현재 write.skin에
<input type='checkbox' name='wr_9[]' value="1" >ㄱㄱㄱ
<input type='checkbox' name='wr_9[]' value="2" >ㄴㄴ
<input type='checkbox' name='wr_9[]' value="3" >ㄷㄷ
식으로 다중 배열 체크를 하고서
write_update.skin.php에
print_r($_POST['wr_9']); exit; --> 이렇게 찍으면 array로 나옵니다 값을 받은게 맞는거죠?!
그래서
$wr_9 = implode('##',$_POST['wr_9']); 로 줬는데 쿼리문을 찍어도
array로 나오는데 어떻게 해야할까요ㅠㅠ
제가 원하는건 저3개를 다 찍었을경우 1##2## 이런식으로 db에 입력이되야하거든요ㅠㅠ
답변 5
write_update.tail.skin.php
파일을 만드시고.
update bo_table set wr_9 = implode('##', $_POST['wr_9']) where bo_table = bo_table and wr_id = wr_id
이렇게 넣으면 되실듯 한데요?
소스를 건드리지 않으셨다면..
write_update.php는
처음으로
@include_once($board_skin_path.'/write_update.head.skin.php');
@include_once($board_skin_path.'/write_update.skin.php');
@include_once($board_skin_path.'/write_update.tail.skin.php');
이렇게 파일을 include합니다.
쿼리를 조금 수정하자면..
$wr_9_str = addslashes( implode('##', $_POST['wr_9']) );
$sql = "update {$write_table} set wr_9 = '{$wr_9_str}' where wr_id = {$wr_id}";
sql_query($sql);
확인해 보세요!
!-->
$wr_9_str = addslashes( implode('##', $_POST['wr_9']) );
$sql = "update {$write_table} set wr_9 = '{$wr_9_str}' where wr_id = {$wr_id}";
echo $sql; exit;
한번 해보실래요?
질문의 체크박스에 체크했는데 print_r($_POST['wr_9']); 의 결과가 array로만 나온다는 것이 이상하네요
당연히 체크한 체크박스의 value 1,2,3 중에서 출력 되어야합니다
위의 체크박스 말고 다른 name=wr_9가 잇는지 확인해보세요
그리고 값 입력시 write_update.head.skin.php에서 값을 합쳐주기만 하면 됩니다
if($wr_9[0]) $wr_9 = implode('##', $_POST['wr_9']);
답변들처럼 update쿼리는 필요없습니다
------------------
이 답변대로 해서 안되면 쓰기 페이지에서 문제가 잇습니다
균이님 말씀대로 print_r($_POST['wr_9']) 가 array 라고 출력되는 것 자체가 문제인듯합니다.
write.skin.php 와 write_update.head.skin.php 파일을 정리하셔서 올려보심이 좋을듯 합니다.
write.skin.php 파일에 <form></form> 태그 안에 input 들이 제대로 위치해있는지도 봐야할 것 같고,
스킨에 이상이 없다면,
혹시 extend 나 플러그인 또는 테마에서 $_POST 를 조작하는지도 봐야겠네요.