在OIModel.class.php增加自動生成訂單號功能:
/*生成隨機訂單號*/ publicfunctionorderSn(){ $sn = 'OI'.date('ymd').mt_rand(10000,99999); $sql = 'select count(*) from '.$this->table.' where order_sn = '."'".$sn."'"; return $this->db->getOne($sql)?$this->orderSn():$sn; } |
訂單商品表寫入
/*獲取剛剛產生的order_id的值*/ $order_id = $OI->insert_id(); /* echo '下訂單成功';*/ /*要把訂單的商品寫入數據庫 一個訂單對應多個商品,可以循環寫入ordergoods表 */ $items = $cart->getAll();//返回訂單中的所有商品 /*獲取ordergoods表的操作model*/ $OG = new OGModel(); $cnt = 0;//記錄插入orderinfo表成功的次數 foreach($items as $k=>$v){ $data = array(); $data['order_sn'] =$order_sn; $data['order_id'] = $order_id; $data['goods_id'] = $k; $data['goods_name'] = $v['name']; $data['goods_number'] = $v['num']; $data['shop_price'] = $v['price']; $data['subtotal'] = $v['price']*$v['num']; if( $OG->addOG($data)){ /*一個訂單有N個商品,只有當所有商品都插入時,纔算插入成功*/ $cnt += 1; } } if(count($items) !== $cnt){ $OI->invoke($order_id); $msg = '下訂單失敗'; include(ROOT.'view/front/msg.html'); exit; } /*下訂單成功,清空購物車*/ $cart->clear(); include(ROOT.'view/front/order.html'); exit; |