테스트 사이트 - 개발 중인 베타 버전입니다

영카트 사용후기 입력제한 질문

장똥 2년 전 조회 1,901

안녕하세요 아래는 사용후기 각 상품별로1회 입력제한 코드입니다.
각상품별 1회 이나.
각 주문서번호별 1회로 입력제한을 하려면 어떻게 하여야할까요 ? 
아래가 맞을까요 ?


</strong></p>

<p>// 사용후기 등록제한 // 원본코드

$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);

if ($use_row['cnt']) {

    alert_close("사용 후기는 상품당 한번만 작성 가능합니다.");

}</p>

<p><strong>



</strong>

// 사용후기 등록제한 // 수정코드

$use_sql = " select count(*) as cnt from {$g5['g5_shop_item_use_table']} where it_id = '$it_id' and mb_id = '{$member['mb_id']}' and od_id = '{$od_id}' ";</p>

<p>$use_row = sql_fetch($use_sql); if ($use_row['cnt']) {</p>

<p>alert_close("사용 후기는 각 주문회 상품당 한번만 작성 가능합니다."); }

<strong>


</strong>

$use_sql = " select count(*) as cnt from {$g5['g5_shop_item_use_table']} where it_id = '$it_id' and mb_id = '{$member['mb_id']}' and od_id = (select od_id from {$g5['g5_shop_order_table']} where it_id = '$it_id' and mb_id = '{$member['mb_id']}' limit 1)";</p>

<p>$use_row = sql_fetch($use_sql);</p>

<p>if ($use_row['cnt']) {</p>

<p>alert_close("각 주문 od_id 당 상품당 한번만 작성 가능합니다."); }

<strong>

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

2년 전

쿼리 자체는 문제가 없어보이네요.

안되신다면 변수들에 값이 제대로 들어가 있나 한번 체크해보셔야 할거 같습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

3번째 코드의 경우 od_id 를 가져오는 서브쿼리 조건절은

주문이 몇개가 되었든 가장 최초 od_id 만 가져오게 될것 같습니다.

ORDER BY 절을 추가하면 되겠지만 작게나마 부하가 들어갈수 있으므로

 

od_id 를 직접 전달하는 2번째 코드가 좋을것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

장똥
2년 전
2,번3,번 코드는 작동을 하지않네요 ㅠㅠ
배르만
2년 전
해당 코드들이 function 에 들어가 있다면 global $g5, $member; 와 같은 글로벌 선언이 되어 있는지
실제 만들어진 $use_sql 은 원하는 값이 모두 세팅된 정상적인 쿼리 형태인지
결과를 받은 $use_row 에는 어떤 값들이 들어있는지
정도의 사항들에 대해 디버깅 해보셔야 합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인