우편번호 숫자 -> 문자열 치환
본문
우편번호를 3자리 - 4자리 끊어서 받아와서
$member['mb_zip1'], $member['mb_zip2'] 로 불러오게끔 수정을 했는데...
앞에 0으로 시작하면 0은 제외가 되는 이슈가 생겨서
숫자를 문자열로 치환하는 방법을 검색 후 수정해봤는데... 적용이 되질 않아 문의 남겨봅니다ㅠㅠㅠ
우편번호 검색기능은 제거하고 직접 입력해서 데이터를 받는데
회원가입작성에서 9230995 라고 우편번호에 입력을 받으면
923995 로 출력이 됩니다..;;
db 에 저장된 값도 923995 로 저장되는걸 보니 애초에 문자열로 저장을 해줘야 할거 같아서
register_form_update 페이지에서 수정해봤는데 적용이 안되고있습니다ㅠㅠㅠ
$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) : "";
strval() 로 문자열로 변환 방법도 써보고
홑따옴표를 데이터 양끝에 넣어서 문자열로 만들어 사용하라는 글도 있어서 그것도 해봤는데...
홑따옴표 사용시 홑따옴표까지도 문자열로 인식이 되어 이상하게 출력되는건지는 모르겠지만...
뒤 4자리가 0995 로 출력은 되는데 앞 3자리에서 마지막 자리수가 짤립니다...;;
// output 923995
$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).'\'' : "";
// output 920995
$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) : "";
답변 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) : "";
디비의 구조를 확인해 보시는게 좋을거 같습니다.
디비가 int형인경우 앞의 0이 빠지는걸지도 모르겠네요
int라면 char나 varchar를 이용해보세요
답변을 작성하시기 전에 로그인 해주세요.