테스트 사이트 - 개발 중인 베타 버전입니다

배열 관련 질문드립니다ㅠㅠ 채택완료

aaab 6년 전 조회 2,303

현재 write.skin에

 

      ㄱㄱㄱ           ㄴㄴ           ㄷㄷ 식으로 다중 배열 체크를 하고서

 

write_update.skin.php에

 

print_r($_POST['wr_9']); exit;  --> 이렇게 찍으면 array로 나옵니다 값을 받은게 맞는거죠?!

그래서      $wr_9 = implode('##',$_POST['wr_9']); 로 줬는데 쿼리문을 찍어도

array로 나오는데 어떻게 해야할까요ㅠㅠ

 

제가 원하는건 저3개를 다 찍었을경우 1##2## 이런식으로 db에 입력이되야하거든요ㅠㅠ

 

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

답변 5개

채택된 답변
+20 포인트
늘맑음
6년 전

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

 

이렇게 넣으면 되실듯 한데요?

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

a
aaab
6년 전
$sql = "update bo_table set wr_9 = implode('##', $_POST['wr_9']) where bo_table = bo_table and wr_id = wr_id";

sql_query($sql);

이런식으로 넣으면될까요? write.skin.php랑 write_update.skin.php 에선 건들게 따로 없나요?
a
aaab
6년 전
이렇게 해보니 작성완료시 에러가 나네요ㅠㅠ

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

균이님 말씀대로 print_r($_POST['wr_9']) 가 array 라고 출력되는 것 자체가 문제인듯합니다.

write.skin.php 와 write_update.head.skin.php 파일을 정리하셔서 올려보심이 좋을듯 합니다.

write.skin.php 파일에

태그 안에 input 들이 제대로 위치해있는지도 봐야할 것 같고,

 

스킨에 이상이 없다면,

혹시 extend 나 플러그인 또는 테마에서 $_POST 를 조작하는지도 봐야겠네요.

로그인 후 평가할 수 있습니다

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

6년 전

질문의 체크박스에 체크했는데 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쿼리는 필요없습니다

------------------

이 답변대로 해서 안되면 쓰기 페이지에서 문제가 잇습니다

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

a
aaab
6년 전
<input type='checkbox' name='wr_9' value="1">ㄱㄱㄱ
<input type='checkbox' name='wr_9' value="2">ㄴㄴㄴ
<input type='checkbox' name='wr_9' value="3">ㄷㄷㄷ 이렇게도 해보고

<input type='checkbox' name='wr_9[]' value="1">ㄱㄱㄱ
<input type='checkbox' name='wr_9[]' value="2">ㄴㄴㄴ
<input type='checkbox' name='wr_9[]' value="3">ㄷㄷㄷ 이렇게도 해봤는데 못받아오는건뭐죠..
균이
6년 전
wr_9[]로 하지말고 wr9[] 이렇게 이름을 변경해보세요

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

늘맑음
6년 전

$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;

한번 해보실래요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

a
aaab
6년 전
Array

update g5_write_221 set wr_9 = '' where wr_id = 3080

이렇게 나와요 저도 그렇게 찍어본거거든요 ㅠㅠ


저 array 값은 아마
write_update.head.skin.php
에다가 이걸 넣어줬는데
print_r($_POST['wr_9']);
$wr_9 = implode('##', $_POST['wr_9']); --> 여기부분 주석해도 wr_9값을 못받아오네요ㅠ

저기서 프린트알값이 찍힌거에요

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

늘맑음
6년 전

소스를 건드리지 않으셨다면..

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합니다.

쿼리를 조금 수정하자면..

 

</p>

<p>$wr_9_str = addslashes( implode('##', $_POST['wr_9']) );

$sql = "update {$write_table} set wr_9 = '{$wr_9_str}' where wr_id = {$wr_id}";</p>

<p> sql_query($sql); </p>

<p>

확인해 보세요!

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

a
aaab
6년 전
wr_9필드에 값이 들어가질않네요 ㅠ
write_update.head.skin.php에서는 array 값이 찍히는데 말이죠ㅠㅠ

저 소스는 wrtie_update.tail.skin.php 에 넣으라는 말씀이실거고 ㅠㅠ

다른 필드들은 잘 들어가는데 안들어가네요 ㅠㅠㅠㅠ

쿼리를 찍어보니 update g5_write_221 set wr_9 = '' where wr_id = 3079

wr_9 값을 못받아오는것 같습니다.. head.skin에선 array로 찍히는데 말이죠

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

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

로그인