온오프라인 재고연동 소스한번만 봐주세요.ㅜㅜ
/** * MySQL class */
class DB2 { var $db_host, $db_user, $db_pass, $db_conn, $err_report; var $count;
var $page_number=10;
function DB2() { $this->db_host = $this->db_user = 'root'; $this->db_pass = 'masterkey'; $this->connect('online'); }
function connect($db_name="") { $this->db_conn = @mysql_connect($this->db_host, $this->db_user, $this->db_pass,true); if (!$this->db_conn){ $err['msg'] = 'DB connection error..'; $this->error($err); } if ($db_name) $this->select($db_name); }
function select($db_name) { $ret = mysql_select_db($db_name); if (!$ret){ $err['msg'] = 'DB selection error..'; $this->error($err); } }
function query($query) { $time[] = microtime();
$res = mysql_query($query, $this->db_conn); if (preg_match("/^select/",trim(strtolower($query)))) $this->count = $this->count_($res);
if (!$res){ $debug = @debug_backtrace(); if($debug){ krsort($debug); foreach ($debug as $v) $debuginf[] = $v['file']." (line:$v[line])"; $debuginf = implode(" ",$debuginf); }
$err['query'] = $query; $err['file'] = $debuginf; $this->error($err); }
$time[] = microtime(); $this->time[] = get_microtime($time[0],$time[1]); $this->log[] = $query;
if ($res) return $res; }
function fetch($res,$mode=0) { if (!is_resource($res)) $res = $this->query($res); return (!$mode) ? @mysql_fetch_array($res) : @mysql_fetch_assoc($res); }
function count_($result) { if(is_resource($result))$rows = mysql_num_rows($result); if ($rows !== null) return $rows; }
function tableCheck($tablename) { $tableQuery = "show tables like '".$tablename."'"; if( $this->count_($this->query($tableQuery)) >= 1 ){ return true; }else{ return false; } }
function _escape($var) { return mysql_real_escape_string($var,$this->db_conn); }
function _query_print($query) { $argList = func_get_args(); array_shift($argList); $this->replaceNum=0; $this->replaceArgs=$argList; $query = preg_replace_callback('/\[(i|d|s|c|cv|vs|v)\]/',array(&$this,'_queryReplace'), $query); return $query; }
function _query($query) { $result = mysql_query($query,$this->db_conn); if($result) { return $result; } else { return false; } }
function _last_insert_id() { $result = mysql_query("SELECT LAST_INSERT_ID()",$this->db_conn); $row = mysql_fetch_row($result); return $row[0]; }
function _select($query) { $result = mysql_query($query,$this->db_conn); if(!$result) { return false; } $arResult=array(); while ($row = mysql_fetch_assoc($result)) { $arResult[]=$row; } return $arResult; }
function _select_page($number,$page,$query) { $start = ($page-1)*$number; $query= trim($query)." limit $start , $number"; if(!preg_match("/^select/i",$query)) { return false; }
$query = preg_replace("/^select/","select SQL_CALC_FOUND_ROWS",$query); if(!($result = mysql_query($query,$this->db_conn))) { return false; }
if(!($c_result = mysql_query("SELECT FOUND_ROWS()",$this->db_conn))) { return false; } list($totalcount) = mysql_fetch_row($c_result); return $this->__paging($result,$totalcount,$number,$page); }
function _select_manual_page($number,$page,$totalcount,$query) { $start = ($page-1)*$number; $query= trim($query)." limit $start , $number"; if(!preg_match("/^select/i",$query)) { return false; } if(!($result = mysql_query($query,$this->db_conn))) { return false; } return $this->__paging($result,$totalcount,$number,$page); }
function __paging($result,$totalcount,$number,$page) { $start = ($page-1)*$number; $ar_return['record'] = array(); $count=1; while($row = mysql_fetch_assoc($result)) { $row['_no'] =$start+$count; $row['_rno'] =$totalcount-($start+$count)+1; $ar_return['record'][] = $row; $count++; }
if($totalcount%$number) $totalpage = (int)($totalcount/$number)+1; else $totalpage = $totalcount/$number;
$step = ceil($page/$this->page_number);
$ar_return['page']=array( 'totalpage'=>$totalpage, 'totalcount'=>$totalcount, 'nowpage'=>$page, 'page'=>array(), 'next'=>false, 'prev'=>false, 'last'=>false, 'first'=>false ); if($step*$this->page_number<$totalpage) $ar_return['page']['next']=$step*$this->page_number+1; if($step!=1) $ar_return['page']['prev']=($step-1)*$this->page_number;
if($ar_return['page']['prev']) $ar_return['page']['first']=1; if($ar_return['page']['next']) $ar_return['page']['last']=$totalpage; if($ar_return['page']['next']) $count=$this->page_number; else { if($totalpage) $count=$totalpage%$this->page_number ? $totalpage%$this->page_number : $this->page_number; else $count=0; } $loop_start = ($step-1)*$this->page_number+1; for($i=0;$i<$count;$i++) { $ar_return['page']['page'][$i]=$loop_start+$i; }
return $ar_return; }
function _queryReplace($matches) { if($matches[1]=='i') { $result = (int)$this->replaceArgs[$this->replaceNum]; } elseif($matches[1]=='d') { $result = (float)$this->replaceArgs[$this->replaceNum]; } elseif($matches[1]=='s') { if(!is_scalar($this->replaceArgs[$this->replaceNum])) { die('query_error'); } $result = '"'.mysql_real_escape_string($this->replaceArgs[$this->replaceNum],$this->db_conn).'"'; } elseif($matches[1]=='c') { $cols = &$this->replaceArgs[$this->replaceNum]; if(!(is_array($cols) && count($cols))) { die('query_error'); } foreach($cols as $eachCol) { if(!preg_match("/[_-a-zA-Z0-9]+/",$eachCol)) { die('query_error'); } } $result = '('.implode(",",$cols).')'; } elseif($matches[1]=='v') { $values = &$this->replaceArgs[$this->replaceNum]; if(!(is_array($values) && count($values))) { die('fff'); } foreach($values as $k=>$eachValue) { if(is_null($eachValue)) { $values[$k]='null'; } else { $values[$k]='"'.mysql_real_escape_string($eachValue,$this->db_conn).'"'; } } $result = '('.implode(",",$values).')'; } elseif($matches[1]=='vs') { $values = &$this->replaceArgs[$this->replaceNum]; if(!(is_array($values) && count($values))) { die('query_error'); } $arRecord=array(); foreach($values as $eachValue) { foreach($eachValue as $k=>$eachElement) { if(is_null($eachElement)) { $eachValue[$k]='null'; } else { $eachValue[$k]='"'.mysql_real_escape_string($eachElement,$this->db_conn).'"'; } } $arRecord[]='('.implode(",",$eachValue).')'; } $result = implode(',',$arRecord); } elseif($matches[1]=='cv') { $colValues = &$this->replaceArgs[$this->replaceNum]; if(!(is_array($colValues) && count($colValues))) { die('query_error'); } $arImplode=array(); foreach($colValues as $eachCol=>$eachValue) { if(is_null($eachValue)) { $arImplode[]= $eachCol.'=null'; } else { $arImplode[]= $eachCol.'="'.mysql_real_escape_string($eachValue,$this->db_conn).'"'; } } $result = implode(",",$arImplode); } $this->replaceNum++; return $result; }
function close() { $ret = @mysql_close($this->db_conn); $this->db_conn = null; return $ret; }
function error($err) { if($this->err_report){ //msg("정상적인 요청이 아니거나 DB에 문제가 있습니다",-1); echo "
| error | ".mysql_error()." |
| $k | $v |
function viewLog() { echo "
| no | query | time |
|---|---|---|
| ".++$idx." | $v | {$this->time[$k]} |
| total | ".array_sum($this->time)." |
?>
------------------------------------------------------------------------------
온.오프라인 재고연동부분 소스인듯한데요.
위소스에서 재고가 "0" 일때 받지말라는 부분이라던가,
1이상일때 받아오라는 부분이있는건가요?
재고가 0으로 되어있으면 못받아오고 1이상의 숫자를 넣어주면 받아오고 있습니다...
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인