>> Delete No. 629 article
No. [PHP]새로운 지역전화번호로...[수정본]

등록 2000-07-20 08:30:00     조회 4
이름 산이    

		안녕하세요?
오랫만에 팁란에 글을 올리는것 같군요...
 현재 제가 있는 회사의 DB에는 약 2000여 개의 Data가 있는데
전화번호가 모두 예전것이라 새로운 지역전화번호로 바꿀 필요가
생겼군요...
 일일이 하나씩 바꾼다는것은 무리한 일이고...
 더욱 불행한것은 지역번호가 국번-전화번호와 같은 컬럼에 있다는것이
저를 슬프게 하는군요.....(DB 설계시 따로 떼어놓았어야 하는건데....T.T)
 만약 지역번호가 국번-전화번호와 같은 컬럼에 존재한다면
임시적으로 다음과 같이 한번 필터링(?)해서 웹브라우저로
출력해 줄 필요가 있을 것 같군요...
 더 좋은 방법이 있으면 한 수 부탁합니다...
 -----
 전화-팩스번호 : "$callfax"라는 변수일 경우,
 ** 경기도 가평/의정부에는 굳지 필요가 없군요....
** 그리고 강원도 전부를 다음과 같이 수정(03[679][0-9])
 $callfax = eregi_replace("^0353-", "033-", $callfax); // 강원도 철원
//$callfax = eregi_replace("^035[16]-", "031-", $callfax); // 경기도 가평/의정부
$callfax = eregi_replace("^03[679][0-9]-", "033-", $callfax); // 강원도 전부
$callfax = eregi_replace("^03[3-5][0-9]-", "031-", $callfax); // 경기도 전부
$callfax = eregi_replace("^05[259][0-9]-", "055-", $callfax); // 경남 전부
$callfax = eregi_replace("^05[4678][0-9]-", "054-", $callfax); // 경북 전부
$callfax = eregi_replace("^068[13]-", "063-", $callfax); // 전북 정읍/부안
$callfax = eregi_replace("^06[13689][0-9]-", "061-", $callfax); // 전남 전부
$callfax = eregi_replace("^06[57][0-9]-", "063-", $callfax); // 전북 전부
$callfax = eregi_replace("^0414-", "043-", $callfax); // 충북 영동
$callfax = eregi_replace("^04[156][0-9]-", "041-", $callfax); // 충남 전부
$callfax = eregi_replace("^04[347][0-9]-", "043-", $callfax); // 충북 전부
 -----
 *PS :
국가 번호없이 [0353-0000-0000]와  같은 경우입니다....
..
 --
전자서명을 만들지 못해서........T.T
-------------------------------------------
 [추가한 내용] *************************
방금 전화번호를 PHP로 수정했습니다.
생각보다 간단하더군요...
 제가 했던 방법은 다음과 같습니다....
(여러가지 다은 방법이 나올 수 있습니다...배열등등을 사용해서..)
 예를 들어,
$callfax 라는 변수는 for()문이나 while()으로 만들어지므로
저 같은 경우에는 for()을 사용했습니다.
 ...
 $result = mysql_query("SELECT count(no) FROM $table");
$total_record = mysql_result($result,0,0); // 전체 레코드 수를 구한다.
...
 $result = mysql_query("SELECT no,callfax,addr FROM $table ORDER BY no DESC");
// 참고로 no 컬럼은 자연증가한 절대번호입니다...
// callfax는 전화-팩스번호 컬럼입니다...
 ...
 for($i = 0; $i <= ($total_record-1); $i++) {
   $no = mysql_result($result,$i,0);
   $callfax = mysql_result($result,$i,1);
   $addr = mysql_result($result,$i,2);
    $callfax = eregi_replace("^0353-", "033-", $callfax); // 강원도 철원
   $callfax = eregi_replace("^03[679][0-9]-", "033-", $callfax); // 강원도 전부
   $callfax = eregi_replace("^03[3-5][0-9]-", "031-", $callfax); // 경기도 전부
   $callfax = eregi_replace("^05[259][0-9]-", "055-", $callfax); // 경남 전부
   $callfax = eregi_replace("^05[4678][0-9]-", "054-", $callfax); // 경북 전부
   $callfax = eregi_replace("^068[13]-", "063-", $callfax); // 전북 정읍/부안
   $callfax = eregi_replace("^06[13689][0-9]-", "061-", $callfax); // 전남 전부
   $callfax = eregi_replace("^06[57][0-9]-", "063-", $callfax); // 전북 전부
   $callfax = eregi_replace("^0414-", "043-", $callfax); // 충북 영동
   $callfax = eregi_replace("^04[156][0-9]-", "041-", $callfax); // 충남 전부
   $callfax = eregi_replace("^04[347][0-9]-", "043-", $callfax); // 충북 전부
 mysql_query("UPDATE $table SET callfax='$callfax' WHERE no ='$no'");
// 필터링(?)한 전화번호를 다시 DB에 넣는다.
 echo ("no:$no $callfax($addr)<br>");
}
 ...
 이상입니다...
 참고로...
PHP4pl2에서 2000여개의 DATA를 고치는데 약 1초 정도 걸리는 군요..(AMD K6-3 400Mhz)
만약 PHP3로 작업하시는 분중에서 이 보다 더 많은 양을 관리하시는 분은
반드시 php3.ini(또는 php.ini)에서
 max_execution_time = 30
 부분을 넉넉하게 정하고 나서 웹서버를 반드시 재가동하시길 바랍니다.
앞의 경우는 최대 스크립트 실행시간이 30초 라는 의미입니다.
(1000만까지 for()문을 돌렸봤더니만 "못하겠다고" 에러를 내더군요...)
 *PS :
혹시 노파심에서..
반드시 백업하시고 작업을 진행하시길 바랍니다...
작업이 끝나고 위의 필터링(?)한 부분과 UPDATE SQL 부분은 지워주시길 바랍니다.
 위의 내용은 초보자를 위한 하나의 방법을 제시한 것 뿐입니다.
(DB 전문가님이 보시면 무척 혼날것 같은 느낌이............T.T)
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved