DB 바로 수정하기

DB 바로 수정하기

QA

DB 바로 수정하기

본문

g5_shop_item 이라는 테이블에 it_id가 a-1이면 it_order를 2로 바꿔라 이거 어떻게 해야하나요?ㅜㅜ

 

예를들어 

t_id가 a-1이면 it_order를 001

t_id가 a-3이면 it_order를 005

t_id가 b-3이면 it_order를 007

  ......

로 변경해라 

 

그런데 이런걸 500개 정도 한번에 하려고 하는데 어떻게 해야할지 궁금합니다.

데이터는 엑셀로 있는데 관리자모드에서 일일히 수정하려니 하나하나 클릭해야 해서 너무 번거로운데 혹시 DB에서 바로 수정가능한가요? 

이 질문에 댓글 쓰기 :

답변 4

id 종류나 컬럼 자료타입(int) 고려해서 수정/추가 후 테스트 해보세요.

테스트는 일단 $target_id 부분을 최소화 하신 후...

 


$target_id = array('a-1', 'a-3', 'b-3');
$result = sql_query(" select it_id from g5_shop_item ", false);
for($i=0; $row = sql_fetch_array($result); $i++) {
    if(!in_array($row['it_id'], $target_id)) continue;
    switch($row['it_id']) {
        case 'a-1'    :    $order_num = 1; break;
        case 'a-3'    :    $order_num = 5; break;
        case 'b-3'    :    $order_num = 7; break;
    }
    sql_query(" update g5_shop_item set it_order = '{$order_num}' where it_id = '{$row['it_id']}' ");
}

select ... order by

case when t_id='a-1' then '001'

when t_id='a-3' then '005'

when t_id='b-31' then '007' else '999' end, it_order 

 


it_id값이 a-1, a-3~~~~이런 모양이 맞나요?
값을 일일이 넣어서 코드를 만드는 것 자체가 어려운 일이니 아래처럼
list스킨(list.10.skin.php ) 상단에 넣어서 페이지를 한번 실행한 후 삭제하세요
 
$idStr = 'a-1,a-3,b-3.............'; // 500개 모두 나열
$odStr ='1,5,7.......................'; //위의 500개와 순서가 같도록 나열
$idArr = explode(',', $idStr);
$odArr = explode(',', $odStr);
foreach($idArr as $key=>$val){
 $od_num = $odArr[$key]; 
 sql_query("update g5_shop_item set it_order='$od_num' where it_id='$val' ");
}

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 818
QA 내용 검색
filter #DB ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT