후기 작성시 해당 주문에 한하여 1번만 작성

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
후기 작성시 해당 주문에 한하여 1번만 작성

QA

후기 작성시 해당 주문에 한하여 1번만 작성

본문

제가 편법(?)으로 후기는 한번만 작성가능하게는 했는데

 

편법 - 홍길동 회원의 총 주문완료된 건수와 후기를 작성한 총 건수를 비교해서 후기 작성시 후기 총 개수가 총 주문완료 건수보다 크거나 같으면 후기를 달 수 없게 했습니다...;;


// 파일 : /shop/itemuseform.php 
// 제품에 회원이 작성한 사용후기 갯수랑 총 주문완료 건수 200106 추가
    $sql = " select count(*) as cnt
                from {$g5['g5_shop_cart_table']}
                where it_id = '$it_id'
                  and mb_id = '{$member['mb_id']}'
                  and ct_status = '완료' ";
    $row = sql_fetch($sql);
    $use_sql = " select count(*) as cnt from {$g5['g5_shop_item_use_table']} where it_id = '$it_id' and mb_id = '{$member['mb_id']}' ";
    $use_row = sql_fetch($use_sql);
    // 완료된 주문읜 건수보다 작성된 후기 개수가 크거나 같으면 등록불가 200106 추가
    if( $row['cnt'] <=  $use_row['cnt'] && ( !$is_admin && strpos('mkggol', $member['mb_id']) === false ) ){
        alert_close("이미 후기를 작성하셨습니다.");
    }

 

이 부분을 보완하고자 하는데

 

1. shop_cart_table 에서 it_id = '$it_id' and mb_id = '{$member['mb_id']}' and ct_status = '완료' 를 가져와서

2. shop_item_use_table 의 it_id = '$it_id' and mb_id = '{$member['mb_id']}' 를 매칭시켜서

 

3. shop_itme_use_table 에 있는 max_write 의 값을 가져오고 싶습니다....;;

 

max_write 는 새로 추가시켜놓은 db 입니다;; 여기에 초기값은 0 이고, 후기를 작성하면 값이 1로 업데이트 시켜서

 

max_write 값이 있으면 alert_close('이미 후기를 작성하였습니다'); 가 뜨고,

              값이 없으면 후기를 작성할 수 있게 하고 싶은데

 

위에서 1/2/3 이 단계 쿼리를 어떻게 짜야 하나요...??

 

두 테이블 컬럼 값 비교를 검색해보니 join 을 쓰면 된다는데

 

sql 은... 건드리질 못해서 질문올려봅니다...ㅠㅠㅠ

 

 

 

추가]

작성하고 어떻게 짜야하나 생각해봤는데 이렇게 될지 모르겠지만...(개발자가 아니어서 용어를 몰라 아는대로 작성하였습니다...ㅠㅠㅠ)

 

1. shop_cart_table 에서 ct_status 값이 '완료'인 것의 it_id랑 mb_id 를 shop_item_use_table 의 it_id랑 mb_id 를 비교

 

2. 거기서 나온 애들중에서 shop_item_use_table 의 max_write 컬럼의 값을 가져옴.

 

위 2개 단계의 sql 쿼리문이 필요할 거 같습니다...ㅠㅠㅠ

 

거기서 구해진 max_write 의 값에 따라 후기가 이미 작성되었는지 아닌지를 판단할 수 있지 않을까요...??

이 질문에 댓글 쓰기 :

답변 1

개발에 ㄱ 자도 모르는 상황에서 검색하고, 다른 페이지들 쿼리짠거 보면서 

 

혼자해보려니 생각했던것보다 너무 어렵네요;;

 


$sql = " select max_write from {$g5['g5_shop_item_use_table']} where it_id = '$it_id' ";
$row = sql_fetch($sql);
 
if( $row['max_write'] ){
    alert_close("이미 후기를 작성하셨습니다.");
}

 

이런식으로 단순하게 max_write 값이 있냐없냐에 따라 후기 작성이 되게는 했는데...

 

저렇게 되니깐 또 g5_shop_item_use 테이블에 max_write 가 1로 바뀐 후기가 어떤 주문에 대한 후기인지 모르고....

 

그래서 od_id 값도 item_use 테이블에 컬럼 추가해서 후기작성할때 od_id 값을 넣어주려고 했는데 들어가질 않고...ㅠㅠㅠㅠㅠ

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

회원로그인

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