input name배열 db에저장방법

input name배열 db에저장방법

QA

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

?>

 

정확한 쿼리가 없으니 패스하고...

보통 배열을 받아서 특정 문자를 기준으로 문자열로 바꾼 후에 저런 식으로 사용해서 지금 사용 중이신 쿼리에 적용하시면 됩니다.

왕계란님 덕분에 db에 input 값들이 저장되는것 까진 잘 완료되었습니다.^^감사합니다~~
근데 한가지 어려운 상황이;; input가 10개라고 봤을때 한필드에 이 10개의 input 값들이 다 등록되어 버립니다. 현재 셀렉트메뉴에서 원하는 <input name="aaa[]" id="aaa1"><input name="aaa[]" id="aaa2"><input name="aaa[]" id="aaa3">...선택후 저장하였을때 필드에 해당하는 input만 저장이 되어져야합니다 ㅠㅠ 계속 접목을 시켜보아도 잘 안되네요 ㅠㅠ;;;

네 현재 select box메뉴에 <option value='1'>aaa1</option><option value='2'>aaa2</option><option value='3'>aaa3</option>.. 이렇게 있고 밑에
<input type="text" name="aaa[]" id="aaa1" value="<?=number_format( $it['aaa1']); ?>" onKeyup="calc();" readonly />
<input type="text" name="aaa[]" id="aaa2" value="<?=number_format( $it['aaa2']); ?>" onKeyup="calc();" readonly />
<input type="text" name="aaa[]" id="aaa3" value="<?=number_format( $it['aaa3']); ?>" onKeyup="calc();" readonly />...
되어있습니다.
option선택시 해당하는 input id가 db에 저장되어야 하는데 현재 저장하게되면 저 aaa1,aaa2,aaa3~
이 값들이 한 필드에 저장되어집니다.
제가 하고자 하는것은 option선택시 선택한 input id값이 db필드에 저장되었으면 합니다. 계속 이것때매 보름동안 고생이네요 naver검색이다 google검색이다 이리저리 다 찾아봐도 허접한 실력이라 해결이 안되어 답답한 마음에 여기 고수분들께 도움을 청합니다. ㅠㅠ

되게 비효율적이지 않나요?
그냥 select box에 값을 넣고 선택한 걸 그대로 저장하면 되지 않을까요?
그리고 select box로 선택한 값만 넘긴다면 굳이 그걸 배열로 넘겨야 할 이유도 없어 보입니다.
http://nyaongii.dothome.co.kr/temp/wrid_143484.html

왕계란님 번거롭게 해드려 우선 죄송하단 말씀드릴께요 ㅠㅠ
죄송한데 하나만 더 여쭙게요..(정말 죄송합니다. ㅠㅠ)제가 진행하고 있는것이 현재 필드가 a와b가 있다면 위의 select box메뉴 선택시
<input type="text" name="aaa[]" id="aaa1" value="<?=number_format( $it['aaa1']); ?>" onKeyup="calc();" readonly />
<input type="text" name="aaa[]" id="aaa2" value="<?=number_format( $it['aaa2']); style="dispaly:none; ?>" onKeyup="calc();" readonly />
<input type="text" name="aaa[]" id="aaa3" value="<?=number_format( $it['aaa3']); style="dispaly:none; ?>" onKeyup="calc();" readonly />

<input type="text" name="bbb[]" id="bbb1" value="<?=number_format( $it['bbb1']); ?>" onKeyup="calc();" readonly />
<input type="text" name="bbb[]" id="bbb2" value="<?=number_format( $it['bbb2']); style="dispaly:none; ?>" onKeyup="calc();" readonly />
<input type="text" name="bbb[]" id="bbb3" value="<?=number_format( $it['bbb3']); style="dispaly:none; ?>" onKeyup="calc();" readonly />

각각 한 selecbox메뉴로 두개이상의 input id값들이 필드에 각각 저장이 되어야하는 상황입니다.
그리고 위 각각 input는 보여지는게 option선택시 aaa1~3번이 보여져야 하며, 그 보여지는 id값이 필드에 저장되어져야 합니다. 말그대로 aaa2번과 aaa3번은 dispaly:none;으로 가려져 있는 상태이지요. option선택에 따라 보여진다고 보시면 되십니다.

하나의 selectbox로 input를 선정해 db에 저장하는건 가능한데 하나의 selectbox로 두개이상의 변경되는 input id값을 각 필드에 저장하는게 어렵네요 ㅠㅠ

그래도 왕계란님께서 알려주신게 저한테 많은 도움이 되고있습니다.
마지막에 알려주신 내용을 지금 활용하고 있는데 어쩌면 이 도움이 크게 작용할것도 같습니다..
너무너무 감사드립니다 ~~

select box로 두 개 이상을 제어한다는 말씀이신가요?
무얼 하시려는지 알 수가 없네요.
select box는 선택한 값 하나가 input box랑 매칭이 되고 있습니다.
단순히 저 코드만 갖고는 뭘 원하시는지 전혀 파악이 안 되네요.

현재 왕계란님께서 마지막 올려주신 소스를 토대로 조금은 이해가 가는거 같습니다. 일단 응용해서 작업을 해보고 있는데 그래도 많이 어렵네요 ㅠㅠ 일단 제가 해볼 수 있는데 까지는 해보는게 맞을거 같습니다. 다시한번 도움을 주신분들께 감사의 말씀을 드립니다~

왕계란님 죄송한데 하나만 더 여쭤봐두 될까요??
혹시 위 input를 select가 아닌 checkbox로 제어할경우 가능할까요?
<tr>
<th scope="row">체크박스제어</th>
<td >
<input type="radio" name="check" value="1"  onClick="check1(this.value,'checkname');"  checked="checked" id="park">
<label for="jinho">1</label>
<input type="radio" name="check" value="2"  onClick="check1(this.value,'checkname');" id="park">
<label for="jinho">2</label>
<input type="radio" name="check" value="3"  onClick="check1(this.value,'checkname');" id="park">
<label for="jinho">3</label>
</td>
</tr>
위에 체크박스를 선택하면 및의 내용들이 바뀌면서 선택된 값이 저장되게 하는게 가능할까요?
<li>
<span id="aaa1"><input type="text" name="aaa[]" id="aaa1" disabled /></span>
<span id="aaa2" style="display:none;"><input type="text" name="aaa[]" id="aaa2" disabled /></span>
<span id="aaa3" style="display:none;"><input type="text" name="aaa[]" id="aaa3" disabled /></span>
</li>
체크박스로 하면 바로 찍어서 필드에 저장하는게 나중을 위해서라도 좋을거 같네요..
조금만 도와주세요~~~

여기 소스한번 봐주시겠어요??
설명만 드리니까 왕계란님 너무 귀찮게 해드리는거 같아서 바로 보시면 이해를 하시기 쉬우실듯 싶습니다.^^ 자꾸 귀찮게 해드리네요 ㅠㅠ
http://styttl78.maru.net/

계속 손을보고 있는데.. 현재 다된건 아니구요 ㅠㅜㅠ 보시면 radio버튼이 세개 있는데 그걸 선택한후 selectbox를 선택하면 선택되 input만 활성화가 되어야하는 상황입니다.
어느쪽을 맞추게 되면 한쪽이 잘 안먹네요 ㅠㅜㅜ

http://styttl78.maru.net/
여기 제가 그림으로 간략하게 설명을 붙여놨는데.. 보시면 아시듯이 radio에 제품1,2,3 중에 하나를 선택하면 input창이 빵1~빵3이라는 input창이 활성화가 됩니다.
여기서 제품2를 선택했을시 밑 input창의 빵2번줄에서 빵2번만 활성화되고 나머지는 비활성이 되어야하구요.. radio(제품2)에 selectbox(아이스크림종류)를 선택했을시 inputbox에는 2번째줄 아이스크림2만 창이 활성화가 되어져야합니다.
아~~ 왕계란님 이렇게 별것도 아닌것에 관심가져 주셔서 너무너무 감사드립니다 ㅠㅠ 저한테 엄청난 큰 힘이 되어주시고 계십니다 ㅠㅠ

와~~~ 왕계란님~~ 제가 원하는게 이거에요 ㅠㅠ 정말 전 풀지도 못하던걸 단 몇분만에 해결해 주시네요~~ 감사합니다.
혹시 저거 제품1~3번 radio버튼 클릭하면 selectbox 선택으로 초기화안되고 그대로 선택 되어있게도 가능한가요? 예를들어 radio제품2를 선택하고 selecbox3번을 선택한뒤 다시 radio제품3번을 선택하면 selectbox3번있던게 그대로 고정되어 있게끔 가능도 하신가요??
정말 정말 왕계란님 덕분에 많은 공부가 되고있습니다.~~ 제가 디자이넌데 개발쪽도 공부해보고 싶어서 책보고 인터넷보고 여기저기 독학으로 하다보니 막히면 해결이 안되네요 ㅠㅠ 이렇게 하나하나 배워서 이걸 자료로 두고 제걸 만들어나가야 겠어요~~ 감사드립니다~~

와~~~ 이거 var c_idx = s_idx = 0; 숫자로만 인식하는거 같은데 혹시 처음 저한테 갈켜주신
$("input[name='aaa[]']").attr("disabled", true);
$(".a" + $(this).val()).attr("disabled", false);
요런 형태로 a1~a9번으로 a명을 줄수 있나요 혹 작업하다가 저 input박스가 b1~b9번으로 시작하는걸 추가하고 싶을때 다른 의미의 input class="b1 support_input" 줄려구 하거든요.. aaa[]이것도 필드에 저장을 할거구욤~ 혹시 c_idx나 s_idx쪽에 위 $(".a" + $(this).val())이부분을 대체하면 되는건가요? 해보니까 잘 안되더라구욤.

제가 테스트로 보낸 페이지는 input 이름과 전혀 상관이 없이 작동합니다.
select box의 번호에 맞춰서 작동하는 거라서 이름과는 무관합니다.
select box의 개수랑 li 개수 똑같이 해서 계속 추가해 보세요. 그러면 무슨 의민지 알 겁니다.

넵 알겠습니다 이렇게 도움을 많이 주셔서 다시 한번 감사하단 말씀 드리고싶습니다
저도 공부 열씸히해서 저같이 막입문한 초보자분들께 도움이 될수있도록 열씸히 노력하겠습니다~^^
왕계란님 감사드립니다~~

왕계란님 죄송한데 하나만 더 여쭤볼께요 ㅠㅠ 계속 하다가 안되서 너무 답답한 마음에;;
http://styttl78.maru.net/ 여기보시면 현재 선택 기준이 반대라 이걸 바꾸려는데 아무리해도 자꾸 에러가 나네요 ㅠㅠ

왕계란님 가르켜주신 소스를 이용해서 selectbox와 radio버튼 선택기준을 바꾸는덴 성공을 했습니다.~~
감사드립니다.
혹 현재 처음 시작시 모든 inputbox가 disabled 되어있는데 최초 1번 input박스만 활성화 된상태로 접속되게는 가능할까요?
예를들어 처음 페이지 새로고침 했을시 1번 input박스만 활성화 되게요..

헉 그렇네요... 소스 수정하다보니 자꾸 복잡해져서 이 간단한걸 복잡하게 생각해 버린거 같아요...;;;
현재 제 원하는데로 모든게 완벽하게 수정이 되었답니다. 왕계란님 몇일동안 저한테 많은 도움 주셔서 너무너무 감사드립니다~~

왕계란님~ 죄송한데 한가지만 더 여쭤봐두 될까요??
현재 http://styttl78.maru.net/index2.html 여기 보시면 전에 하던거에서 콘트롤하는 SELECTBOX가 두개가 있을시 하나는 큰UL을 담당하고 하나는 그 UL안의 li input를 각각 담당하는 selectbox가 존재합니다.
하나를 disabled하면 하나가 안먹히고;; 큰selecbox에서 작은 selectbox를 컨트롤 하자니 아무리 해봐도 답이 안나오네요 ㅠㅠ 도와주세요 ~~ ㅠㅠ

배열을 하나의 필드에 저장하려고 하는건가요?

 

http://php.net/manual/kr/function.serialize.php

 

참고하세요.

 

불러온 데이터는 http://php.net/manual/kr/function.unserialize.php

 

https://opentutorials.org/module/986/7216 

답변을 작성하시기 전에 로그인 해주세요.
전체 2 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT