수고가 많으십니다.
빈센트 커피에서 일전에 주문내역이 저절로 사라지는 현상에 대해 문의를 주셔서 해결을 했었는데요. 원인을 보니까 주문번호가 겹쳐서 주문이 되더군요.
즉, A라는 사람이 주문을 하고 B라는 사람이 주문을 했는데, 주문번호가 겹쳐져서 B라는 사람이 주문한 내역이 사라지는 현상이 발생했습니다.
어떤 부분을 수정해야 하나요?
빈센트 커피에서 일전에 주문내역이 저절로 사라지는 현상에 대해 문의를 주셔서 해결을 했었는데요. 원인을 보니까 주문번호가 겹쳐서 주문이 되더군요.
즉, A라는 사람이 주문을 하고 B라는 사람이 주문을 했는데, 주문번호가 겹쳐져서 B라는 사람이 주문한 내역이 사라지는 현상이 발생했습니다.
어떤 부분을 수정해야 하나요?
댓글 3개
lib/shop.lib.php 가 아래와 같은 코드로 되어 있는 확인하여 주십시오.
주문서가 겹치는 것은 심각한 오류입니다.
혹시나 주문과 관련된 코드를 수정하셨다면 원본으로 되돌리고 확인하여 주시기 바랍니다.
// 유일키를 생성
function get_unique_id($len=32)
{
global $g4;
$result = @mysql_query(" LOCK TABLES $g4[yc4_on_uid_table] WRITE, $g4[yc4_cart_table] READ, $g4[yc4_order_table] READ ");
if (!$result) {
$sql = " CREATE TABLE `$g4[yc4_on_uid_table]` (
`on_id` int(11) NOT NULL auto_increment,
`on_uid` varchar(32) NOT NULL default '',
`on_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`session_id` varchar(32) NOT NULL default '',
PRIMARY KEY (`on_id`),
UNIQUE KEY `on_uid` (`on_uid`) ) ";
sql_query($sql, false);
}
// 이틀전 자료는 모두 삭제함
$ytime = date("Y-m-d", $g4['server_time'] - 86400 * 1);
$sql = " delete from $g4[yc4_on_uid_table] where on_datetime < '$ytime' ";
sql_query($sql);
$unique = false;
do {
sql_query(" INSERT INTO $g4[yc4_on_uid_table] set on_uid = NOW(), on_datetime = NOW(), session_id = '".session_id()."' ", false);
$id = @mysql_insert_id();
$uid = md5($id);
sql_query(" UPDATE $g4[yc4_on_uid_table] set on_uid = '$uid' where on_id = '$id' ");
// 장바구니에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_cart_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt]) {
// 주문서에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_order_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt])
$unique = true;
}
} while (!$unique); // $unique 가 거짓인동안 실행
@mysql_query(" UNLOCK TABLES ");
return $uid;
}
주문서가 겹치는 것은 심각한 오류입니다.
혹시나 주문과 관련된 코드를 수정하셨다면 원본으로 되돌리고 확인하여 주시기 바랍니다.
// 유일키를 생성
function get_unique_id($len=32)
{
global $g4;
$result = @mysql_query(" LOCK TABLES $g4[yc4_on_uid_table] WRITE, $g4[yc4_cart_table] READ, $g4[yc4_order_table] READ ");
if (!$result) {
$sql = " CREATE TABLE `$g4[yc4_on_uid_table]` (
`on_id` int(11) NOT NULL auto_increment,
`on_uid` varchar(32) NOT NULL default '',
`on_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`session_id` varchar(32) NOT NULL default '',
PRIMARY KEY (`on_id`),
UNIQUE KEY `on_uid` (`on_uid`) ) ";
sql_query($sql, false);
}
// 이틀전 자료는 모두 삭제함
$ytime = date("Y-m-d", $g4['server_time'] - 86400 * 1);
$sql = " delete from $g4[yc4_on_uid_table] where on_datetime < '$ytime' ";
sql_query($sql);
$unique = false;
do {
sql_query(" INSERT INTO $g4[yc4_on_uid_table] set on_uid = NOW(), on_datetime = NOW(), session_id = '".session_id()."' ", false);
$id = @mysql_insert_id();
$uid = md5($id);
sql_query(" UPDATE $g4[yc4_on_uid_table] set on_uid = '$uid' where on_id = '$id' ");
// 장바구니에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_cart_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt]) {
// 주문서에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_order_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt])
$unique = true;
}
} while (!$unique); // $unique 가 거짓인동안 실행
@mysql_query(" UNLOCK TABLES ");
return $uid;
}
게시글 목록
| 번호 | 제목 |
|---|---|
| 56073 | |
| 56067 | |
| 56065 | |
| 56060 | |
| 56058 | |
| 56055 | |
| 56051 | |
| 56048 | |
| 56044 | |
| 56043 | |
| 56042 | |
| 56039 | |
| 56035 | |
| 56032 | |
| 56030 | |
| 56028 | |
| 56025 | |
| 56018 | |
| 56012 | |
| 56010 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기