필드 분할 이게 추천 방식인가요? 채택완료

9년 전 조회 4,127

글쓰기시 

$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개

채택된 답변
+20 포인트

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

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

배열을 쓸 때 어지간해서는 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개

늘감사합니다~ 해보니 깔끔하네요,,

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다~

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

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

로그인
🐛 버그신고