DB에 이렇게 쌓이는데 소스 어디가 잘못된걸까요..
본문
<code>
case '4': // 체크박스
if($csconfig[$fvs]=='1' || $csconfig[$fvs]=='2'){
if($csconfig[$fvs]=='2') { $needstr = '<strong class="sound_only">필수</strong>'; }
else { $needstr = ''; }
$Arrays=optArray($fvs,$mdatas);
$ch_array[$fvs] = explode("|", $write[$fvs]);
echo '<tr>
<th scope="row"><label for="ca_name">'.$mdatas[$fvs]['iname'].$needstr.'</label></th>
<td>';
gen_single_checkbox("",'N'.$fvs,$Arrays,$Arrays,$ch_array[$fvs],'',$mdatas[$fvs]['size2']);
if($mdatas[$fvs]['bigo']) echo '<span class="text-muted font-12" style="margin-top:4px;">'.get_text($mdatas[$fvs]['bigo'], 1).'</span>';
echo '</td>
</tr>';
if($csconfig[$fvs]=='2') {
$javastr.="
kk=0;
for ( ii=0; ii < ".sizeof($Arrays)." ; ii++ ){
if (document.fwrite.N".$fvs."[ii].checked) {kk=1; ii=".sizeof($Arrays)."; }
}
if(kk<1){ alert('".$mdatas[$fvs][iname]."을(를) 선택하여 주십시오.'); document.fwrite.N".$fvs."[0].focus(); return false ; }
";
}
} break;
</code>
db에 체크된 값만 집어넣는 소스는 이렇게 되는거 같습니다
아래쪽 사진 왼쪽은 DB에 입력되어 있는 데이터이고 오른쪽은 제가 체크한 값입니다..
체크가 모든 데이터가 안들어가있는것을 볼 수 있는데요..
|가 중복돼서 || 이런식으로 입력되어 있기도 한데 어떻게 하면 체크된 값이 모두 잘 들어오게 할 수 있을까요??
답변 2
write_update.php 파일을 통해서 db에 insert 처리를 하는부분에서
| 파이프가 포함된 영역을
한 필드에 들어가는내용이라면
빈값 || 가 안되도록 처리하지 않을 문자등을 정하셔서 입력시 기본값이 셋팅되게 하시고
각 필드별로 나눠서 저장을 하실거라면
explode로 나눠서 각 필드에 매핑되는 배열값을 사용해보세요
어느것이든 먼저 '룰'을 정하시고 진행하셔야 합니다.
현재 내가 어디를 처리하는지, 어디까지 왔는지, 무엇에서 막히는지
파악하면 질문도 , 해결도 명확해질겁니다.
요일별 체크된 부분을 추출하는 부분과
추출된 것들을 데이터베이스에 넣는 부분이 있을 텐데
이것만 가지고는 알 수 없겠네요.
아마도 DB에 넣는 부분에 문제가 있는 듯 싶네요.
그리고 시간을 구분하는 구분자를 파이프(|) 하나면 하나, 둘이면 둘로 구분하셔야
나중에 참조하실 때 편리하실 겁니다.