새로운 db테이블에 저장된 댓글을 수정 및 삭제를 하고 싶습니다.

새로운 db테이블에 저장된 댓글을 수정 및 삭제를 하고 싶습니다.

QA

새로운 db테이블에 저장된 댓글을 수정 및 삭제를 하고 싶습니다.

본문

회원들의 댓글을 신규 db 테이블(comment_history_table)을 생성하여 관리자 페이지에 모이게 만들었습니다.

여기서 전체 댓글이 모이는게 아니라 관리자가 댓글에서 확정을 해 주면 db에 모이게 만들었습니다.

 

현재 확정하면 이상 없이 db에 저장이 되며 관리자 페이지에서 볼 수 있습니다.

그런데 접수로 변경하면 확정에 들어가 있던 그 댓글이 삭제가 되어야 되는 삭제가 되지 않고 있습니다.

 

그리고 한가지도 탈락으로 변경을 하면 확정된 댓글이 탈락으로 변경이 되어야 하는데 이 또한 되지 않고 있습니다.

 

다시 말해 확정이 된 댓글은 잘 들어오고 있습니다. 그런데 접수나 탈락으로 변경을 하면 아무 변화가 없고 접수나 탈락으로 변경했던 댓글을 다시 확정으로 변경을 하면 새롭게 db에 저장이 되고 있습니다....ㅠ.ㅠ

 

어떻게 수정을 해야할까요?? 도움 부탁드립니다.

 


if($_POST['wr_6'] == "확정") {
        sql_query(" insert into {$g5['comment_history_table']} set comm_year = '{$row['wr_1']}', comm_quarter = '{$row['wr_3']}', comm_subject = '{$row['wr_subject']}', comm_w_id = '{$row['wr_name']}', comm_datetime = '".G5_TIME_YMDHIS."', comm_mb_id = '{$row['mb_id']}', comm_birth = '{$row['wr_19']}', comm_old = '{$row['wr_20']}', comm_sex = '{$row['wr_21']}', comm_hp = '{$row['wr_22']}', comm_work = '{$row['wr_23']}', comm_purpose = '{$row['wr_24']}', comm_path = '{$row['wr_25']}', comm_email = '{$row['wr_26']}', comm_zip = '{$row['wr_27']}', comm_addr1 = '{$row['wr_28']}', comm_addr2 = '{$row['wr_29']}', comm_addr3 = '{$row['wr_30']}', comm_addr_jibeon = '{$row['wr_31']}', comm_note = '{$row['wr_6']}' "); 
        sql_fetch(" select comm_id, comm_quarter, comm_subject, comm_w_id, comm_mb_id, comm_birth, comm_old, comm_sex, comm_hp, comm_work, comm_purpose, comm_path, comm_email, comm_zip, comm_addr1, comm_addr2, comm_addr3, comm_addr_jibeon, comm_note from {$g5['comment_history_table']} where comm_id = '{$row['comm_id']}' ");
    } else if($_POST['wr_6'] == "접수") {
        sql_query(" delete from {$g5['comment_history_table']} where comm_id = '".$row['comm_id']."' "); 
    } else if($_POST['wr_6'] == "탈락") {
        sql_query(" update {$g5['comment_history_table']} set comm_note = '{$row['wr_6']}' where comm_mb_id = '{$row['comm_mb_id']}' "); 
        sql_fetch(" select comm_id, comm_quarter, comm_subject, comm_w_id, comm_mb_id, comm_birth, comm_old, comm_sex, comm_hp, comm_work, comm_purpose, comm_path, comm_email, comm_zip, comm_addr1, comm_addr2, comm_addr3, comm_addr_jibeon, comm_note from {$g5['comment_history_table']} where comm_id = '{$row['comm_id']}' ");
    }

이 질문에 댓글 쓰기 :

답변 3

1. 접수

$row['comm_id'] 가 빈 값이어서 그럴 듯 합니다.

 

delete from comment_history_table where comm_id = ''

 

2. 탈락

$row['comm_mb_id'] 가 빈 값이어서 그럴 듯 합니다.

 

where comm_mb_id 

=> where comm_id

 

감사합니다...
말씀해 주신거 가지고 제가 생각 해보니 애초에 제가 잘 못 생각하고 있었던 듯 합니다.
게시판 여러 개에서 댓글을 뽑아와서 db와 관리자 페이지에 데이터를 집어넣는건 문제가 안되는데 이후에 수정이나 삭제의 경우 어느 게시판의 댓글인지 구분할 수 있는 구분인자를 넣지 않아 발생되는 문제인거 같습니다.
결국 구분은 아이디 밖에 없는데 아이디로 수정이나 삭제를 해버리면 그 아이디의 댓글이 모두 수정 또는 삭제가 되니까요....
우선 게시판의 구분인자와 댓글 넘버를 가지고 db에 들어가도록 해야할 것 같습니다.

else if($POST['wr_6'] == "접수") 와 else if($POST['wr_6'] == "탈락") 이 부분의 코드에서는 해당 댓글을 삭제하거나 상태를 변경하는 쿼리가 실행되지 않고 있는것 같습니다.

다음과 같이 수정해 보시는건 어떨까 합니다.

 


if ($_POST['wr_6'] == "확정") {
    sql_query("INSERT INTO {$g5['comment_history_table']} SET comm_year = '{$row['wr_1']}', comm_quarter = '{$row['wr_3']}', comm_subject = '{$row['wr_subject']}', comm_w_id = '{$row['wr_name']}', comm_datetime = '".G5_TIME_YMDHIS."', comm_mb_id = '{$row['mb_id']}', comm_birth = '{$row['wr_19']}', comm_old = '{$row['wr_20']}', comm_sex = '{$row['wr_21']}', comm_hp = '{$row['wr_22']}', comm_work = '{$row['wr_23']}', comm_purpose = '{$row['wr_24']}', comm_path = '{$row['wr_25']}', comm_email = '{$row['wr_26']}', comm_zip = '{$row['wr_27']}', comm_addr1 = '{$row['wr_28']}', comm_addr2 = '{$row['wr_29']}', comm_addr3 = '{$row['wr_30']}', comm_addr_jibeon = '{$row['wr_31']}', comm_note = '{$row['wr_6']}' ");
    sql_fetch("SELECT comm_id, comm_quarter, comm_subject, comm_w_id, comm_mb_id, comm_birth, comm_old, comm_sex, comm_hp, comm_work, comm_purpose, comm_path, comm_email, comm_zip, comm_addr1, comm_addr2, comm_addr3, comm_addr_jibeon, comm_note FROM {$g5['comment_history_table']} WHERE comm_id = '{$row['comm_id']}' ");
} else if ($_POST['wr_6'] == "접수") {
    sql_query("DELETE FROM {$g5['comment_history_table']} WHERE comm_id = '".$row['comm_id']."' ");
    sql_query("UPDATE {$g5['write_table']} SET wr_6 = '접수' WHERE wr_id = '".$row['wr_id']."' ");
} else if ($_POST['wr_6'] == "탈락") {
    sql_query("UPDATE {$g5['comment_history_table']} SET comm_note = '{$row['wr_6']}' WHERE comm_id = '{$row['comm_id']}' ");
    sql_query("UPDATE {$g5['write_table']} SET wr_6 = '탈락' WHERE wr_id = '".$row['wr_id']."' ");
    sql_fetch("SELECT comm_id, comm_quarter, comm_subject, comm_w_id, comm_mb_id, comm_birth, comm_old, comm_sex, comm_hp, comm_work, comm_purpose, comm_path, comm_email, comm_zip, comm_addr1, comm_addr2, comm_addr3, comm_addr_jibeon, comm_note FROM {$g5['comment_history_table']} WHERE comm_id = '{$row['comm_id']}' ");
}

1. "접수"로 변경하는 경우에는 {$g5['write_table']} 에서 해당 댓글의 wr_6 필드를 "접수"로 업데이트 하도록 변경

2. "탈락"으로 변경하는 경우에도 {$g5['write_table']} 에서 해당 댓글의 wr_6 필드를 "탈락"으로 업데이트 하도록 변경

어떤 파일에서 작업하시는 건가요?

그리고

sql_fetch(" select ....");

return 값을 받지 않으면 굳이 실행할 필요가 있을까요.

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

회원로그인

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