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

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

QA

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

답변 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 값을 넣어주려고 했는데 들어가질 않고...ㅠㅠㅠㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 21
© SIRSOFT
현재 페이지 제일 처음으로