input name배열 db에저장방법
본문
item.form.skin.php에서 아래와 같이 input name이 동일하나 value값이 다른 input를 select menu에서 원하는 input를 정한후 바로구매를 하려고 합니다.
<input type="text" name="aaa[]" id="aaa1" size="5" class="support_input" value="aaa1" />
<input type="text" name="aaa[]" id="aaa2" size="5" class="support_input" value="aaa2" />
<input type="text" name="aaa[]" id="aaa3" size="5" class="support_input" value="aaa3" />
<input type="text" name="aaa[]" id="aaa4" size="5" class="support_input" value="aaa4" />
adm/config_form.php 에
if(!isset($config['ct_infodata'])) {
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `aaa` varchar(255) NOT NULL AFTER `aaa_input`,
}
이렇게 등록되어 있습니다. 일단 <input type="text" name="aaa[]" id="aaa1" size="5" class="support_input" value="aaa1" />가 아닌 <input type="text" name="aaa" id="aaa1" size="5" class="support_input" value="aaa1" /> 이렇게 등록을 하게되면 db에 정상적으로 값이 저장이 되는데요.. []배열로 하게 되면 db에 저장이 안됩니다..
orderform.sub.php 페이지에서
<?php echo $row['aaa']; ?>로 출력이 되려고 합니다. 허나 배열로 정의하지 않고 aaa로만 name을 정할경우 중복이 되어 마지막 aaa의 input value값만 출력이 됩니다.
현재 orderform.sub.php 에는 [잉끼다]님께서 <?php
echo
@implode(
", "
,
$_REQUEST
[
'aaa'
]); ?> 이부분을 알려주셔서 수정한 상태인데 나머진 뭔가 빠진게 있는건지
orderform.sub.php에서 값이 나타나질 않습니다.. cartupdate.php파일에도
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, aaa, )
VALUES ";
왜 안되는건지 도무지 알수가 없네요;; 도와주세요 고수님들 ㅜㅠㅜ
답변 2
<?
$aaa = implode(", ", $_POST['aaa']);
$query = "INSERT INTO 테이블명 SET 칼럼명 = '".$aaa."'";
sql_query($query);
?>
정확한 쿼리가 없으니 패스하고...
보통 배열을 받아서 특정 문자를 기준으로 문자열로 바꾼 후에 저런 식으로 사용해서 지금 사용 중이신 쿼리에 적용하시면 됩니다.
배열을 하나의 필드에 저장하려고 하는건가요?
http://php.net/manual/kr/function.serialize.php
참고하세요.
불러온 데이터는 http://php.net/manual/kr/function.unserialize.php