 |
สอบถามการใส่โค้ดการตัดสต๊อกสินค้าครับ ติดแค่ตรงนี้ก็เสร็จแล้ว วอนช่วยทีครับ |
|
 |
|
|
 |
 |
|
ต้องการให้กดปุ่ม place order แล้วรับค่าจาก qty ไปตัดจำนวนสินค้าใน table stock ครับ ต้องใส่โค้ดตรงไหนครับ
อันนี้เป็นหน้าที่ใช้ action ค่าต่างๆฮะ
Code (PHP)
<?php
// initialize shopping cart class
include 'Cart.php';
$cart = new Cart;
// include database configuration file
include 'connect1.php';
if(isset($_REQUEST['action']) && !empty($_REQUEST['action'])){
if($_REQUEST['action'] == 'addToCart' && !empty($_REQUEST['id'])){
$productID = $_REQUEST['id'];
// get product details
$query = $db->query("SELECT * FROM stock WHERE id = ".$productID);
$row = $query->fetch_assoc();
$itemData = array(
'id' => $row['id'],
'name' => $row['name'],
'price' => $row['price'],
'qty' => 1
);
$insertItem = $cart->insert($itemData);
$redirectLoc = $insertItem?'viewcart.php':'index.php';
header("Location: ".$redirectLoc);
}elseif($_REQUEST['action'] == 'updateCartItem' && !empty($_REQUEST['id'])){
$itemData = array(
'rowid' => $_REQUEST['id'],
'qty' => $_REQUEST['qty']
);
$updateItem = $cart->update($itemData);
echo $updateItem?'ok':'err';die;
}elseif($_REQUEST['action'] == 'removeCartItem' && !empty($_REQUEST['id'])){
$deleteItem = $cart->remove($_REQUEST['id']);
header("Location: viewcart.php");
}elseif($_REQUEST['action'] == 'placeOrder' && $cart->total_items() > 0 && !empty($_SESSION['sessCustomerID'])){
// insert order details into database
$insertOrder = $db->query("INSERT INTO orders (customer_id, total_price, created, modified) VALUES ('".$_SESSION['sessCustomerID']."', '".$cart->total()."', '".date("Y-m-d H:i:s")."', '".date("Y-m-d H:i:s")."')");
if($insertOrder){
$orderID = $db->insert_id;
$sql = '';
// get cart items
$cartItems = $cart->contents();
foreach($cartItems as $item){
$sql .= "INSERT INTO order_items (order_id, product_id, quantity) VALUES ('".$orderID."', '".$item['id']."', '".$item['qty']."');";
}
// insert order items into database
$insertOrderItems = $db->multi_query($sql);
if($insertOrderItems){
$cart->destroy();
header("Location: orderSuccess.php?id=$orderID");
}else{
header("Location: checkoutt.php");
}
}else{
header("Location: checkoutt.php");
}
}else{
header("Location: menu1.php");
}
}else{
header("Location: menu1.php");
}
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2017-05-22 02:02:32
|
 |
 |
 |
 |
Date :
2017-05-21 20:18:10 |
By :
ret4567 |
View :
812 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลืมครับอันนี้หน้า Cart ที่เชื่อมกับหน้าด้านบน
Code (PHP)
<?php session_start();
class Cart {
protected $cart_contents = array();
public function __construct(){
// get the shopping cart array from the session
$this->cart_contents = !empty($_SESSION['cart_contents'])?$_SESSION['cart_contents']:NULL;
if ($this->cart_contents === NULL){
// set some base values
$this->cart_contents = array('cart_total' => 0, 'total_items' => 0);
}
}
/**
* Cart Contents: Returns the entire cart array
* @param bool
* @return array
*/
public function contents(){
// rearrange the newest first
$cart = array_reverse($this->cart_contents);
// remove these so they don't create a problem when showing the cart table
unset($cart['total_items']);
unset($cart['cart_total']);
return $cart;
}
/**
* Get cart item: Returns a specific cart item details
* @param string $row_id
* @return array
*/
public function get_item($row_id){
return (in_array($row_id, array('total_items', 'cart_total'), TRUE) OR ! isset($this->cart_contents[$row_id]))
? FALSE
: $this->cart_contents[$row_id];
}
/**
* Total Items: Returns the total item count
* @return int
*/
public function total_items(){
return $this->cart_contents['total_items'];
}
/**
* Cart Total: Returns the total price
* @return int
*/
public function total(){
return $this->cart_contents['cart_total'];
}
/**
* Insert items into the cart and save it to the session
* @param array
* @return bool
*/
public function insert($item = array()){
if(!is_array($item) OR count($item) === 0){
return FALSE;
}else{
if(!isset($item['id'], $item['name'], $item['price'], $item['qty'])){
return FALSE;
}else{
/*
* Insert Item
*/
// prep the quantity
$item['qty'] = (float) $item['qty'];
if($item['qty'] == 0){
return FALSE;
}
// prep the price
$item['price'] = (float) $item['price'];
// create a unique identifier for the item being inserted into the cart
$rowid = md5($item['id']);
// get quantity if it's already there and add it on
$old_qty = isset($this->cart_contents[$rowid]['qty']) ? (int) $this->cart_contents[$rowid]['qty'] : 0;
// re-create the entry with unique identifier and updated quantity
$item['rowid'] = $rowid;
$item['qty'] += $old_qty;
$this->cart_contents[$rowid] = $item;
// save Cart Item
if($this->save_cart()){
return isset($rowid) ? $rowid : TRUE;
}else{
return FALSE;
}
}
}
}
/**
* Update the cart
* @param array
* @return bool
*/
public function update($item = array()){
if (!is_array($item) OR count($item) === 0){
return FALSE;
}else{
if (!isset($item['rowid'], $this->cart_contents[$item['rowid']])){
return FALSE;
}else{
// prep the quantity
if(isset($item['qty'])){
$item['qty'] = (float) $item['qty'];
// remove the item from the cart, if quantity is zero
if ($item['qty'] == 0){
unset($this->cart_contents[$item['rowid']]);
return TRUE;
}
}
// find updatable keys
$keys = array_intersect(array_keys($this->cart_contents[$item['rowid']]), array_keys($item));
// prep the price
if(isset($item['price'])){
$item['price'] = (float) $item['price'];
}
// product id & name shouldn't be changed
foreach(array_diff($keys, array('id', 'name')) as $key){
$this->cart_contents[$item['rowid']][$key] = $item[$key];
}
// save cart data
$this->save_cart();
return TRUE;
}
}
}
/**
* Save the cart array to the session
* @return bool
*/
protected function save_cart(){
$this->cart_contents['total_items'] = $this->cart_contents['cart_total'] = 0;
foreach ($this->cart_contents as $key => $val){
// make sure the array contains the proper indexes
if(!is_array($val) OR !isset($val['price'], $val['qty'])){
continue;
}
$this->cart_contents['cart_total'] += ($val['price'] * $val['qty']);
$this->cart_contents['total_items'] += $val['qty'];
$this->cart_contents[$key]['subtotal'] = ($this->cart_contents[$key]['price'] * $this->cart_contents[$key]['qty']);
}
// if cart empty, delete it from the session
if(count($this->cart_contents) <= 2){
unset($_SESSION['cart_contents']);
return FALSE;
}else{
$_SESSION['cart_contents'] = $this->cart_contents;
return TRUE;
}
}
/**
* Remove Item: Removes an item from the cart
* @param int
* @return bool
*/
public function remove($row_id){
// unset & save
unset($this->cart_contents[$row_id]);
$this->save_cart();
return TRUE;
}
/**
* Destroy the cart: Empties the cart and destroy the session
* @return void
*/
public function destroy(){
$this->cart_contents = array('cart_total' => 0, 'total_items' => 0);
unset($_SESSION['cart_contents']);
}
}
|
 |
 |
 |
 |
Date :
2017-05-21 23:04:47 |
By :
ret4567 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่มีคนมาดูเลยย T T ช่วยหน่อยนะครับ ทำมาทั้งวันแล้ว ติดตรงนี้ก็จะเสร็จ
|
ประวัติการแก้ไข 2017-05-21 23:58:20
 |
 |
 |
 |
Date :
2017-05-21 23:54:06 |
By :
ret4567 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมดู code แล้วถ้าคุณเขียนเองทั้งหมดได้ตามที่ post ผมว่าคุณไม่น่าจะติดอะไร
แต่ปัญหาคือคุณคงไปเอา code เก่าหรือตามเว็บมาแก้ แล้วมันติดปัญหา ซึ่งจะหาคนช่วยตอบยากมาก
เพราะเสียเวลาไปนั่งไล่ลอจิก ใน thaicreate ก็มีครับเรื่อง shopping cart แบบง่ายๆด้วย ลองหาดูครับ
|
 |
 |
 |
 |
Date :
2017-05-22 09:07:07 |
By :
mee079 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช่ครับ อันนี้ก๊อปมา เนื่องจากตะกร้าสินค้าที่ผมออกแบบเองแล้วต้องการให้ใส่ตัวเลขแล้วคำนวณอัตโนมัติแต่ทำไม่เป็น เลยลบ แล้วก๊อปอันนี้สำเร็จรูปมาครับแล้วแก้เอา ทีนี้เลยมาติดตัดสต๊อกไม่รู้จะใส่ตรงไหนเลยครับ พยายามหาหลายกระทู้แล้วแต่ก็ไม่เข้าใจเลยมาสอบถามครับ
|
 |
 |
 |
 |
Date :
2017-05-22 15:51:28 |
By :
ret4567 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|