찜하기 소스 문의 드려요.(같은 상품 중복방지) 정보
찜하기 소스 문의 드려요.(같은 상품 중복방지)본문
안녕하세요. 투표 잘 하셨나요?ㅎ
아래는 찜하기(장바구니) 소스입니다.
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");
}
?>
아래는 찜하기(장바구니) 소스입니다.
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");
}
{
에
아래 구문을 추가하시어서 동일한 제품이 들어오면 경고를 주는방법이 있을듯 합니다
$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");
}
영카트 질문이셨네요 ㅎ
답변 감사 드립니다.ㅎ :) 덕분에 쉽게 해결하였습니다.
아주 잘되요~ㅎㅎㅎ
아주 잘되요~ㅎㅎㅎ