배열값 post 로 받아서 insert 할때요... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

배열값 post 로 받아서 insert 할때요... 정보

배열값 post 로 받아서 insert 할때요...

본문

for($i=0;$i<count($mb_id);$i++){
        $sql = " insert into $g4[cpoint_table]
            set mb_id = '$mb_id[$i]',
                  po_datetime = '$g4[time_ymdhis]',
                  po_content = '".addslashes($content)."',
                  po_point = '$mb_point[$i]',
                  po_sub_point = '$mb_g_sub_point[$i]',
                  po_cpoint = '$mb_cpoint[$i]',
                  po_s_1 = '$mb_idd',
                  po_s_2 = '$mb_recommend',
                  po_s_3 = ''";
sql_query($sql);

print_r($_post); 해서 보면...배열값은 모두 넘어는데요...
sql 실행될때....디비에 값이 들어가질 않습니다.
(디비보면...배열값에 해당되는 필드만 공란으로 됩니다.)

왜 그런거죠? ㅜㅜ

조언좀...부탁드릴께요...ㅜㅜ
  • 복사

댓글 전체

일단은 $sql 문을 찍어 보시길 바랍니다.

sql_query($sql);
전에

echo "$sql <hr>"; 정도 추가하셔서 실행 결과를 보시는게 좀더 정확한 결과를 예상하실수 있을듯 합니다.
for문 있는상태에서 찍으면...$sql 문 찍어면...아무것도 안나오구요...
for문 없이 찍으면...배열값이 들어가야 할곳은 '' 공란으로 되어있습니다.
일단 $sql 에 배열값이 안들어간다고 하셨는데....

넘어오는 변수값(배열) 값이 POST 이시니 $_POST['배열값'] 내지 $_POST[배열값] 하셔서 필요한 값을 넣어 보신후 다시 $sql 을 echo 하셔서 확인해 보십시요.

ex) 기존 넘어오는 배열값이 aaa 라는 명칭을 가지면

echo" $_POST[aaa] "; 하셔서 값이 넘어 오신다면
$sql = "po_s_1 = $_POST[aaa] ";
같이 하셔서 $sql  값이 정상적으로 나오는 확인해 보시길 바랍니다.
echo "$_POST[mb_cpoint]";
$sql = "mb_cpoint = $_POST[mb_cpoint]";

이렇게 하는건가요? ^^;;

저렇게 하면..그냥 Array 만 나옵니다.


리스트중 하나를 선택해서 실행하면..
print_r($_POST); 화면에...
Array( [mb_id] => Array([8] => aud1 ) [mb_point] => Array( [8] => 0) .......

이런식으로 나오거든요..ㅠㅠ
답변이 늦었습니다 -_-;;

  늦은 나이에 구경 다니기도 힘들어서 ㅠ.ㅠ

  배열로 된 값이기에 for 문을 돌리셔야 합니다.  (그게 아니시라면 배열값을 일일이 찍는 방법도...)

  즉 mb_cpoint 이게 배열로 저장되셨다면
  자신들 만의 방법으로 배열을 사용하십니다.

  간단하게 이용할수 있는 방법으로 아래와 같이 해보았습니다.
 
  $cpint = $_POST[mb_cpoint][0]; -> $_POST[mb_cpoint] 의 0번째 배열값을 가져 옵니다.
  이 방법을 이용하여 필요한 배열의 갯수만큼 뽑아내시면 됩니다 (노가다죠 ;;)

  for ($i = 0 ; $i <count($_POST[mb_cpoint];$i++) {
  $aaa = $_POST[mb_cpoint][$i];
  echo" $i 번째 값은 $aaa 입니다 ";
 }

 대강 이렇게 돌려보시면 값이 보이시지 않을까 생각합니다.
 배열 자체의 값을 쓰실려면 그 위치의 값을 지정해 주시는게 좋습니다 만 넘겨져온 배열의 값을 알수  없을 경우 for 문을 돌리셔서 필요한 만큼 뽑아서 사용하시는것도 좋습니다.
© SIRSOFT
현재 페이지 제일 처음으로