여분필드 1개에 복수값 입력받기

여분필드 1개에 복수값 입력받기

QA

여분필드 1개에 복수값 입력받기

본문

현재 별도테마나 스킨없이

여분필드 1개를 이용하여 숫자를 입력받고 있습니다.

 

일반적으로 write.skin.php 파일에서

<input type="text" name="wr_1" value="<?php echo $write['wr_1']?>"

 이렇게 하고 사용하고 있습니다.

 

(질문) 혹시 같은 필드(wr_1)에서 여러개의 숫자를 입력받을 수 있나요?

 - 이용자가 몇개의 값을 넣을지는 모릅니다. 1개 ~ 5개 수준

 - 1개값 입력후 엔터로 입력거나 /// 특수기호(쉼표, | , 등)을 이용해서 입력받거나

   어떠한 방법도 좋습니다

 

예 : 500 (엔터) 550 (엔터) 660 (엔터) 입력시 3개값을 wr_1[1], wr_1[2], wr_1[3]에 저장

 - 만약 550 (엔터)값이 잘못되면 입력도중 삭제도 가능

 

상당히 초보라서 상세히알려주시기를 간절히 부탁드립니다.

 

나중에는 해당 필드의 값을 범위검색으로도 사용될 예정입니다.

500~540으로 검색시, 입력된 배열값중 하나라도 매칭되면 출력되도록 구성할 계획입니다.

이 질문에 댓글 쓰기 :

답변 3

컬럼 하나에 여러값을 사용해야할때

보통 explode, implode 가 많이 사용됩니다만

https://www.php.net/manual/en/function.explode.php

https://www.php.net/manual/en/function.implode.php

 

검색이 목적인 경우 simple type 컬럼보다 성능이 떨어지게 됩니다.

https://www.codingfactory.net/10702 
explode 를 사용하시면 되실 것 같습니다.

저장시에는 textarea 폼에 텍스트를 그대로 입력하시고
출력시에는 explode 를 이용하시면 되겠습니다.

$wr_1_exp = explode("\n",$view['wr_1']); 
for($i=0; $i<count($wr_1_exp); $i++) {
    echo $wr_1_exp[$i];
}

 

만약 특수기호를 넣는다면 아래처럼도 가능합니다.

$wr_1_exp = explode("|",$view['wr_1']);  // 어느 특수문자를 넣어도 됩니다. 구분자를 뭘로 설정하냐에 따라 틀립니다.
for($i=0; $i<count($wr_1_exp); $i++) {
    echo $wr_1_exp[$i];
}


배열은 0부터 시작하므로 만약 특정 번호의 배열을 출력하고 싶으시면 아래처럼도 가능합니다.

$wr_1_exp = explode("\n",$view['wr_1']); 
echo $wr_1_exp[2]; // 3번째 배열 출력


\n = <br> 같은 개념이라 texarea에서 엔터로 줄바꿈시 DB 상에는 \n 로 들어가게됩니다.
explode 는 작성자님이 말씀하신 예를 들은 질문에 그대로 부합합니다.
위에 링크 제목처럼 "문자열을 분할하여 배열로 저장하는 함수" 입니다.

변수명 $wr_1_exp 는 임의로 정한 이름이라 작성자님이 맞게 수정하시면 될 듯 합니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 1,178
QA 내용 검색

회원로그인

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