채택완료

필드 분할 이게 추천 방식인가요?

2016-10-06 (목) 14:20:18 4,462

글쓰기시 

$wr_1 = explode("|", $write['wr_1']); 

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

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

  

업데이트시 

$wr_1 = ''; 
for($k=0; $k<count($_POST['wr_1']); $k++) { 
    $wr_1 .= $_POST['wr_1'][$k].'|'; 
} 

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2016-10-06 (목) 14:50:01

컴프 님이 말씀하신 대로 저런 식으로 쓰는 건 그리 좋은 방법이 아닙니다......만 초보분들에겐 테이블을 하나 더 만들어서 그걸 현재 테이블이랑 조인하는 것도 어려울 테구요.

그래서 궁여지책으로 쓰는 게 지금 쓰신 방법입니다.

배열을 쓸 때 어지간해서는 name에 index를 넣을 일이 없을 겁니다.

wr_1[0], wr_1[1] 이런 식으로 안 하고 그냥 wr_1[]로 쓰면 알아서 값이 들어갑니다.

그리고 update 할 땐 explode 반대 역할을 하는 implode를 쓰시면 됩니다.

for로 쓰게 되면 제일 마지막에 또 구분자가 붙고 그걸 잘라내야 하고 등등...

그냥 implode 쓰면 됩니다. 

$wr_1 = explode("|", $write['wr_1']); 

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

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

update

$wr_1 = implode("|", $_POST['wr_1']); 

답변에 대한 댓글 1개

2016-10-06 (목) 15:27:43
늘감사합니다~ 해보니 깔끔하네요,,

값을 구분자 만들어서 하는 방법은 비추천이에요.

검색 할 때 인덱스를 설정할 수 없어요. 

이런 구현 방식은 사용안하심이 좋을 듯해요..

답변에 대한 댓글 1개

2016-10-06 (목) 15:27:56
감사합니다~

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