특정 상품 구매시 회원등급 올리기 채택완료
커피볶는정콩
4년 전
조회 1,850
안녕하세요! 특정 상품 구매시 회원등급을 올리려고 하는데요.. 일단은 여러차례 구글링을 해서 sir에서 포인트를 이용해서 올리는 방법을 알아내었습니다
하지만 이 방법은 모든 상품을 구매하면 포인트를 지급하면서 동시에 쿼리를 줘서 회원 등급을 올리는 방법인거 같습니다 그래서 제가 생각했던게 예를들면 a 상품의 it_id 가 123 라고 한다면 it_id가 123 인 상품을 구매했으면 회원등급을 올려주는 형식으로 만들려고 했는데.. 왜 안되는지 잘 모르겠습니다 선배님들의 조언이 필요합니다 감사합니다..
</p>
<p>function save_order_point($ct_status="完了")
{
global $g5, $default;</p>
<p> $beforedays = date("Y-m-d H:i:s", ( time() - (86400 * (int)$default['de_point_days']) ) ); // 86400초는 하루
$sql = " select * from {$g5['g5_shop_cart_table']} where ct_status = '$ct_status' and ct_point_use = '0' and ct_time <= '$beforedays' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
// 회원 ID 를 얻는다.
$od_row = sql_fetch("select od_id, mb_id from {$g5['g5_shop_order_table']} where od_id = '{$row['od_id']}' ");
if ($od_row['mb_id'] && $row['ct_point'] > 0) { // 회원이면서 포인트가 0보다 크다면
$po_point = $row['ct_point'] * $row['ct_qty'];
$po_content = "주문번호 {$od_row['od_id']} ({$row['ct_id']}) 배송완료";
insert_point($od_row['mb_id'], $po_point, $po_content, "@delivery", $od_row['mb_id'], "{$od_row['od_id']},{$row['ct_id']}");
}
sql_query("update {$g5['g5_shop_cart_table']} set ct_point_use = '1' where ct_id = '{$row['ct_id']}' ");</p>
<p> </p>
<p> //내가 작성한 코드</p>
<p> //$sql_find = "select it_id,ct_status from {$g5['g5_shop_cart']} where it_name='Membership Step (4)'";
//$od_find = sql_fetch($sql_find);
//if($od_find['it_id'] == 1625643785){</p>
<p> //회원등급을 변경하는 코드
//sql_query("update {$g5['member_table']} set mb_level = '5' where mb_id = '{$od_row['mb_id']}' ");
//}
}
}
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
4년 전
$sql = " select * from {$g5['g5_shop_cart_table']} where ct_status = '$ct_status' and ct_point_use = '0' and ct_time <= '$beforedays' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
...
if($row['it_Id']== 1625643785){
//회원등급을 변경하는 코드
sql_query("update {$g5['member_table']} set mb_level = '5' where mb_id = '{$row['mb_id']}' ");
}
중복일 수 있으나 이렇게 하면 될 듯합니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
커피볶는정콩
4년 전
선생님 너무너무 감사합니다 이렇게 코드를 작성하니 그래도 작동은 하는거 같습니다 정말 감사드립니다 오랫동안 고민했는데 해결했네요 하지만 조금만 더 배워가고 싶습니다 어디가 중복이라는 말씀이실까요? 그리고 중복이 발생하면 향후 문제가 있을까요?
�
엑스엠엘
4년 전
DB 내용에서 중복이 아니라
코드 상에서 중복이랄까 조금은 효율적이지 못하다는 겁니다.
계속 if()으로 비교하고 있으니까요.
하여간에 save_order_point() 함수 안에서는 이게 최선인 듯합니다.
코드 상에서 중복이랄까 조금은 효율적이지 못하다는 겁니다.
계속 if()으로 비교하고 있으니까요.
하여간에 save_order_point() 함수 안에서는 이게 최선인 듯합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인