우편번호 숫자 -> 문자열 치환 채택완료
우편번호를 3자리 - 4자리 끊어서 받아와서 $member['mb_zip1'], $member['mb_zip2'] 로 불러오게끔 수정을 했는데...
앞에 0으로 시작하면 0은 제외가 되는 이슈가 생겨서
숫자를 문자열로 치환하는 방법을 검색 후 수정해봤는데... 적용이 되질 않아 문의 남겨봅니다ㅠㅠㅠ
우편번호 검색기능은 제거하고 직접 입력해서 데이터를 받는데
회원가입작성에서 9230995 라고 우편번호에 입력을 받으면
923995 로 출력이 됩니다..;;
db 에 저장된 값도 923995 로 저장되는걸 보니 애초에 문자열로 저장을 해줘야 할거 같아서
register_form_update 페이지에서 수정해봤는데 적용이 안되고있습니다ㅠㅠㅠ
</p>
<p>$mb_zip1 = isset($_POST['mb_zip']) ? substr(trim($_POST['mb_zip']), 0, 3) : "";
$mb_zip2 = isset($_POST['mb_zip']) ? substr(trim($_POST['mb_zip']), 4) : "";</p>
<p>
strval() 로 문자열로 변환 방법도 써보고
홑따옴표를 데이터 양끝에 넣어서 문자열로 만들어 사용하라는 글도 있어서 그것도 해봤는데...
홑따옴표 사용시 홑따옴표까지도 문자열로 인식이 되어 이상하게 출력되는건지는 모르겠지만...
뒤 4자리가 0995 로 출력은 되는데 앞 3자리에서 마지막 자리수가 짤립니다...;;
</p>
<p>// output 923995</p>
<p>$mb_zip1 = isset($_POST['mb_zip']) ? '\''.substr(trim($_POST['mb_zip']), 0, 3).'\'' : "";
$mb_zip2 = isset($_POST['mb_zip']) ? '\''.substr(trim($_POST['mb_zip']), 4).'\'' : "";</p>
<p> </p>
<p>// output 920995</p>
<p>$mb_zip1 = isset($_POST['mb_zip']) ? substr(trim('\''.$_POST['mb_zip'].'\''), 0, 3) : "";
$mb_zip2 = isset($_POST['mb_zip']) ? substr(trim('\''.$_POST['mb_zip'].'\''), 4) : "";</p>
<p>
답변 2개
우편번호가 무조건 7자리로 넘어오나요? 그럼 아래처럼 해보시고, mb_zip 데이터형식이char(3)일텐데요. 이것도 char(4)로 바꾸셨나요?
$mb_zip1 = isset($_POST['mb_zip']) ? substr(trim($_POST['mb_zip']), 0,3) : ""; $mb_zip2 = isset($_POST['mb_zip']) ? substr(trim($_POST['mb_zip']), -4) : "";
답변에 대한 댓글 4개
4로 되어있어서 말씀하신거 처럼 5번째 자리수부터 출력이 돼서 995가 출력이 된거였나봅니다...;;
제가 substr 에 대해 제대로 이해를 못하고 있었네요;;
[code]
$mb_zip2 = isset($_POST['mb_zip']) ? substr(trim($_POST['mb_zip']), 3) : "";
[/code]
이렇게 바꿔주니... 잘나오네요... 감사합니다!!ㅠㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
디비의 구조를 확인해 보시는게 좋을거 같습니다.
디비가 int형인경우 앞의 0이 빠지는걸지도 모르겠네요
int라면 char나 varchar를 이용해보세요
답변에 대한 댓글 1개
위에 @세크티 님 답변처럼 뒤 4자리수 저장되는 $mb_zip2 에서 -4를 넣으니 출력은 잘 되고 있습니다...
해결은 했지만 원인이 궁금해지네요;; 4와 -4 차이인데... 뒤에서부터 자르는건 0이 출력된다는게...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
오... 출력이 잘됩니다..ㅠㅠㅠ 혹시 4 와 -4 의 차이를 알수 있을까요...??
4는 앞에 3자리는 잘라내고 4번째 자리부터 쭉 뽑아내는거고,
-4는 뒤에서 부터 4자리만 잘라내서 뽑아오는거로 알고 있는데...
거꾸로 했을때는 0까지 출력되는 이유를 아시나요...??ㅠㅠㅠㅠ