찜하기 소스 문의 드려요.(같은 상품 중복방지) > 그누4 질문답변

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

찜하기 소스 문의 드려요.(같은 상품 중복방지) 정보

찜하기 소스 문의 드려요.(같은 상품 중복방지)

본문

안녕하세요. 투표 잘 하셨나요?ㅎ
아래는 찜하기(장바구니) 소스입니다.
wr_id가 같은 상품을 찜하더라도 중복되지 않게 하려면,
어떻게해야 되나요?
(같은 상품을 5번 찜하면, 5개가 연달아 붙어요.)


<?
include_once("./_common.php");
include_once("$board_skin_path/config.php");

// 브라우저에서 쿠키를 허용하지 않은 경우라고 볼 수 있음.
$tmp_on_uid = get_session('ss_on_uid');
if (!$tmp_on_uid)
{
    alert("더 이상 작업을 진행할 수 없습니다.\\n\\n브라우저의 쿠키 허용을 사용하지 않음으로 설정한것 같습니다.\\n\\n브라우저의 인터넷 옵션에서 쿠키 허용을 사용으로 설정해 주십시오.\\n\\n그래도 진행이 되지 않는다면 쇼핑몰 운영자에게 문의 바랍니다.");
}


// 레벨(권한)이 상품구입 권한보다 작다면 상품을 구입할 수 없음.
if ($member[mb_level] < $default[de_level_sell])
{
    alert("상품을 구입할 수 있는 권한이 없습니다.");
}


if ($w == "d") // 삭제이면
{   
    $sql = " delete from $g4[cart_table]
              where ct_id = '$ct_id'
                and on_uid = '$tmp_on_uid' ";
    sql_query($sql);
}
else if ($w == "alldelete") // 모두 삭제이면
{   
    $sql = " delete from $g4[cart_table]
              where on_uid = '$tmp_on_uid' ";
    sql_query($sql);
}
else if ($w == "allupdate") // 수량 변경이면 : 모두 수정이면
{
    $fldcnt = count($_POST[ct_id]);

   

for ($i=0; $i<$fldcnt; $i++)
    {
        $sql = " update $g4[cart_table]
                    set ct_qty = '{$_POST[ct_qty][$i]}'
                  where ct_id  = '{$_POST[ct_id][$i]}'
                    and on_uid = '$tmp_on_uid' ";

        sql_query($sql);
    }

}
else if ($w == "multi") // 온라인견적(등)에서 여러개의 상품이 한꺼번에 들어옴.
{
    // 보관함에서 금액이 제대로 반영되지 않던 오류를 수정
    $fldcnt = count($_POST[it_name]);

    // 재고등을 검사
    $error = "";
for ($i=0; $i<$fldcnt; $i++)
    {
        if ($_POST[it_id][$i] == "" || $_POST[ct_qty][$i] <= 0) { continue; }

        // 비회원가격과 회원가격이 다르다면
        if (!$is_member && $default[de_different_msg])
        {
            $sql = " select it_amount, it_amount2 from $g4[yc4_item_table] where it_id = '{$_POST[it_id][$i]}' ";
            $row = sql_fetch($sql);
            if ($row[it_amount2] && $row[it_amount] != $row[it_amount2]) {
                $error .= "\"{$_POST[it_name][$i]}\" 의 비회원가격과 회원가격이 다릅니다. 로그인 후 구입하여 주십시오.\\n\\n";
            }
        }

        // 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
        $sql = " select SUM(ct_qty) as cnt from $g4[yc4_cart_table] where it_id = '{$_POST[it_id][$i]}' and on_uid = '$tmp_on_uid' ";
        $row = sql_fetch($sql);
        $sum_qty = $row[cnt];

        // 재고 구함
        $it_stock_qty = get_it_stock_qty($_POST[it_id][$i]);
        if ($_POST[ct_qty][$i] + $sum_qty > $it_stock_qty) {
            $error .= "{$_POST[it_name][$i]} 의 재고수량이 부족합니다. 현재 재고수량 : $it_stock_qty\\n\\n";
        }
    }

    // 오류가 있다면 오류메세지 출력
    if ($error != "") { alert($error); }

for ($i=0; $i<$fldcnt; $i++)
    {
        if ($_POST[it_id][$i] == "" || $_POST[ct_qty][$i] <= 0) continue;

        // 포인트 사용하지 않는다면
        if (!$config[cf_use_point]) $_POST[it_point][$i] = 0;

        // 장바구니에 Insert
        $sql = " insert $g4[cart_table]
                    set on_uid      = '$tmp_on_uid',
bo_table    = '$bo_table',
                        it_id        = '{$_POST[it_id][$i]}',
it_name      = '{$_POST[it_name][$i]}',
                        ct_status    = '쇼핑',
                        ct_amount    = '{$_POST[it_amount][$i]}',
                        ct_point    = '{$_POST[it_point][$i]}',
                        ct_point_use = '0',
                        ct_stock_use = '0',
                        ct_qty      = '{$_POST[ct_qty][$i]}',
                        ct_time      = '$g4[time_ymdhis]',
                        ct_ip        = '$REMOTE_ADDR' ";
        sql_query($sql);
    }
}
else // 장바구니에 담기
{
    if (!$_POST[wr_id])
        alert("장바구니에 담을 상품을 선택하여 주십시오.");

    if ($_POST[wr_qty] < 1)
        alert("수량은 1 이상 입력해 주십시오.");

 
    //--------------------------------------------------------
    //  재고 검사
    //--------------------------------------------------------
    // 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
    $sql = " select SUM(ct_qty) as cnt from $g4[cart_table]
              where it_id = '$_POST[wr_id]'
                and on_uid = '$tmp_on_uid' ";
    $row = sql_fetch($sql);
    $sum_qty = $row[cnt];

 
    // 포인트 사용하지 않는다면
    if (!$config[cf_use_point]) { $_POST[it_point] = 0; }

    // 장바구니에 Insert
    $sql = " insert $g4[cart_table]
                set on_uid      = '$tmp_on_uid',
bo_table    = '$bo_table',
                    it_id        = '$_POST[wr_id]',
it_name      = '$_POST[wr_subject]',
ca_name = '$_POST[ca_name]',
                    it_opt1      = '$_POST[wr_opt1]',
                    it_opt2      = '$_POST[wr_opt2]',
                    it_opt3      = '$_POST[wr_opt3]',
                    it_opt4      = '$_POST[wr_opt4]',
                    it_opt5      = '$_POST[wr_opt5]',
                    it_opt6      = '$_POST[wr_opt6]',
                    ct_status    = '쇼핑',
                    ct_amount    = '$_POST[wr_price]',
                    ct_point    = '$_POST[wr_point]',
                    ct_point_use = '0',
                    ct_stock_use = '0',
                    ct_qty      = '$_POST[wr_qty]',
                    ct_time      = '$g4[time_ymdhis]',
                    ct_ip        = '$REMOTE_ADDR' ";
    sql_query($sql);
}

// 바로 구매일 경우
if ($sw_direct)
{

  goto_url("./order.php?bo_table=$bo_table");
 
}
else
{
    goto_url("./cart.php?bo_table=$bo_table");
}
?>

댓글 전체

else // 장바구니에 담기
{

아래 구문을 추가하시어서 동일한 제품이 들어오면 경고를 주는방법이 있을듯 합니다

$sql = " select count(*) as cnt from $g4[cart_table] where wr_id = '$wr_id' and on_uid = '$tmp_on_uid' ";
$row = sql_fetch($sql);
if($row[cnt]){
alert("현재 장바구니에 내용이 있습니다. 장바구니에서 수량을 변경해 주세요" , "./cart.php?bo_table=$bo_table");
}
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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