db 잘못건들어서 wr_name 필드값이 전부.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

db 잘못건들어서 wr_name 필드값이 전부.. 정보

db 잘못건들어서 wr_name 필드값이 전부..

본문

update g4_테이블 set wr_name=REPLACE(ca_name,'이거에서','저걸로')
 
급한 맘에
이렇게 작성이 되어서 작성자 이름이 전부 카테고리 이름으로 변경되어 버렷습니다
 
문외한인 저로서는 해결방법 도저히 못찾고 고수분들의 도움 요청합니다
 
 
mb_id   에 따른 wr_name  으로 일치시키는
 
구문이라든지의
 
그런 해결방법좀 부탁드립니다
 
야밤에 흘린 식은땀이..그나마 딴짓 하다 안날린게  다행이라는 생각이 ....^^;

댓글 전체

정상적인 처리구문인
(특정게시판의 게시물들의 특정 카테고리 이름을 변경하는 작업)
update g4_boardtable set ca_name=REPLACE(ca_name,'기존이름','새로운 이름')
이랬어야 되는데

update g4_boardtable set wr_name=REPLACE(ca_name,'기존이름','새로운 이름')
이러는 바람에
글 작성자 이름(wr_name) 필드값이  '새로운 이름" 값으로 변경되버린 겁니다

그래서 정상복원 (백업 안된상태인지라..)되려면
멤버테이블에서 mb_id, mb_nick 을 불러와서
g4_boardtable 의 wr_name 값을 입력할 방법이 없는가에 대한 질문입니다..

관심 가져 주신점 감사드립니다
^^;
test.php
<?
include_once("./common.php");
$sql = " select wr_id, mb_id where g4_write_보드이름 ";
$result = sql_query($sql);
$success = 0;
$failed = 0;
$failed_wrid = "";
for($i=0; $row=sql_fetch_array($result); $i++){
  $mb = get_member($row[mb_id], "mb_name, mb_nick");
  if($mb[mb_name] || $mb[mb_nick]){
        $insert_name = $mb[mb_name];  //혹은 닉네임을 넣고싶다면 $insert_name = $mb[mb_nick];
        $success++;
  } else {
        $insert_name = "일반사용자";  //만약 회원이 쓴 글이 아니라면 일반사용자라고 넣습니다.
        $failed++;
        $failed_wrid .= "&nbsp; $row[wr_id] ";
  }

    $sql = " update g4_write_보드이름 set wr_name = '$insert_name' where wr_id = '$row[wr_id]' ";
    sql_query($sql);
}
echo " 성공 : $success <br>";
echo " 실패 : $failed <br>";
echo $failed_wrid;
?>
혹시 이런 형태를 말씀하시는 건가요?
보드에 mb_id에 따른 회원의 닉네임이나 회원의 이름을 넣는..
마지막에 $failed_wrid 를 참조하여 회원의 이름이나 닉네임이 들어가지 않은 곳을 찾아 직접 수정해주는것도 나쁘지 않은 방법이라 생각됩니다 ^^;
대략 답변 주신게  맞는것 같습니다만
실행이 안되고 잇습니다


'잘못된 방법으로 변수가 정의되었습니다.'
이건 무슨 현상일려나요~?
문법 틀린곳이 없어보이는데요 ^^;
아~~$sql = " select wr_id, mb_id where g4_write_보드이름 ";  요기 where 를 from 으로;;
g4_write_보드이름 요녀석은 고치려는 테이블명으로 바꾸신 후
$success 관련 $failed 관련 부분을 주석처리 하신 후
그누보드가 설치된 폴더에 파일을 저장하신 후 실행시켜보셔요

$success, $failed가 기존 php기본 변수??와 중복되서 그런것 같습니다..만?? 이유는 모르겠네요 ㅎㅎ;;
$success 를 $a, $failed 를 $b 로 하신후 사용해보시는 것도 ^^;;
나머지변수들은 매번 사용하던 변수라 이상없을겁니다.
말쑴하신대로 이것저것 만져서 성공한 소스는 아래와 같습니다..
거듭 감사드립니다
건강하시고요...일일이 수작업 중이었는데 혹시나 하고 들어왔는데 단숨에 해결봣습니다
감사드립니다
꾸벅

<?
define("_GNUBOARD_", TRUE);
include_once("./_common.php");
include_once("./_head.php");
$sql = " select wr_id, mb_id from g4_write_보드이름 ";
$result = sql_query($sql);
//$success = 0;
//$failed = 0;
//$failed_wrid = "";
for($i=0; $row=sql_fetch_array($result); $i++){
  $mb = get_member($row[mb_id], "mb_name, mb_nick");
  if($mb[mb_name] || $mb[mb_nick]){
        $insert_name = $mb[mb_nick];  //혹은 닉네임을 넣고싶다면 $insert_name = $mb[mb_nick];
//        $success++;
  } else {
        $insert_name = "일반사용자";  //만약 회원이 쓴 글이 아니라면 일반사용자라고 넣습니다.
//        $failed++;
//        $failed_wrid .= "&nbsp; $row[wr_id] ";
  }

    $sql = " update g4_write_보드이름 set wr_name = '$insert_name' where wr_id = '$row[wr_id]' ";
    sql_query($sql);
}
//echo " 성공 : $success <br>";
//echo " 실패 : $failed <br>";
//echo $failed_wrid;
?>
전체 3 |RSS

회원로그인

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