本文目錄一覽:
- 1、請教關於PHP購物車代碼的數據庫表和字段
- 2、php關於用數據庫作為購物車的原理
- 3、php session實現購物車的原理
- 4、網站購物車是怎麼個原理。對數據庫表配哪些字段想不明白。請假大俠們。
- 5、PHP中用json實現購物車功能,怎麼實現
- 6、php 實現 購物車 提交到 訂單的數據庫
請教關於PHP購物車代碼的數據庫表和字段
PHP Code
div id=”products-wrapper”
h1Products/h1
div class=”products”
?php
//current URL of the Page. cart_update.php redirects back to this URL
$current_url = base64_encode($url=”http://”.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’]);
$results = $mysqli-query(“SELECT * FROM cart ORDER BY id ASC”);
if ($results) {
//fetch results set as object and output HTML
while($obj = $results-fetch_object())
{
echo ‘div class=”product”‘;
echo ‘form method=”post” action=”cart_update.php”‘;
echo ‘div class=”product-thumb”img src=”images/’.$obj-product_img_name.'”/div’;
echo ‘div class=”product-content”h3’.$obj-product_name.’/h3′;
echo ‘div class=”product-desc”‘.$obj-product_desc.’/div’;
echo ‘div class=”product-info”‘;
echo ‘Price ‘.$currency.$obj-price.’ | ‘;
echo ‘Qty input type=”text” name=”product_qty” value=”1″ size=”3″ /’;
echo ‘button class=”add_to_cart”Add To Cart/button’;
echo ‘/div/div’;
echo ‘input type=”hidden” name=”product_code” value=”‘.$obj-product_code.'” /’;
echo ‘input type=”hidden” name=”type” value=”add” /’;
echo ‘input type=”hidden” name=”return_url” value=”‘.$current_url.'” /’;
echo ‘/form’;
echo ‘/div’;
}
}
?
/div
div class=”shopping-cart”
h2Your Shopping Cart/h2
?php
if(isset($_SESSION[“products”]))
{
$total = 0;
echo ‘ol’;
foreach ($_SESSION[“products”] as $cart_itm)
{
echo ‘li class=”cart-itm”‘;
echo ‘span class=”remove-itm”a href=”cart_update.php?removep=’.$cart_itm[“code”].’return_url=’.$current_url.'”×/a/span’;
echo ‘h3’.$cart_itm[“name”].’/h3′;
echo ‘div class=”p-code”P code : ‘.$cart_itm[“code”].’/div’;
echo ‘div class=”p-qty”Qty : ‘.$cart_itm[“qty”].’/div’;
echo ‘div class=”p-price”Price :’.$currency.$cart_itm[“price”].’/div’;
echo ‘/li’;
$subtotal = ($cart_itm[“price”]*$cart_itm[“qty”]);
$total = ($total + $subtotal);
}
echo ‘/ol’;
echo ‘span class=”check-out-txt”strongTotal : ‘.$currency.$total.’/strong a href=”view_cart.php”Check-out!/a/span’;
echo ‘span class=”empty-cart”a href=”cart_update.php?emptycart=1return_url=’.$current_url.'”Empty Cart/a/span’;
}else{
echo ‘Your Cart is empty’;
}
?
/div
cart_update.php
PHP Code
?php
session_start();
include_once(“config.php”);
//empty cart by distroying current session
if(isset($_GET[“emptycart”]) $_GET[“emptycart”]==1)
{
$return_url = base64_decode($_GET[“return_url”]); //return url
session_destroy();
header(‘Location:’.$return_url);
}
//add item in shopping cart
if(isset($_POST[“type”]) $_POST[“type”]==’add’)
{
$product_code = filter_var($_POST[“product_code”], FILTER_SANITIZE_STRING); //product code
$product_qty = filter_var($_POST[“product_qty”], FILTER_SANITIZE_NUMBER_INT); //product code
$return_url = base64_decode($_POST[“return_url”]); //return url
//limit quantity for single product
if($product_qty 10){
die(‘div align=”center”This demo does not allowed more than 10 quantity!br /a href=””Back To Products/a./div’);
}
//MySqli query – get details of item from db using product code
$results = $mysqli-query(“SELECT product_name,price FROM cart WHERE product_code=’$product_code’ LIMIT 1”);
$obj = $results-fetch_object();
if ($results) { //we have the product info
//prepare array for the session variable
$new_product = array(array(‘name’=$obj-product_name, ‘code’=$product_code, ‘qty’=$product_qty, ‘price’=$obj-price));
if(isset($_SESSION[“products”])) //if we have the session
{
$found = false; //set found item to false
foreach ($_SESSION[“products”] as $cart_itm) //loop through session array
{
if($cart_itm[“code”] == $product_code){ //the item exist in array
$product[] = array(‘name’=$cart_itm[“name”], ‘code’=$cart_itm[“code”], ‘qty’=$product_qty, ‘price’=$cart_itm[“price”]);
$found = true;
}else{
//item doesn’t exist in the list, just retrive old info and prepare array for session var
$product[] = array(‘name’=$cart_itm[“name”], ‘code’=$cart_itm[“code”], ‘qty’=$cart_itm[“qty”], ‘price’=$cart_itm[“price”]);
}
}
if($found == false) //we didn’t find item in array
{
//add new user item in array
$_SESSION[“products”] = array_merge($product, $new_product);
}else{
//found user item in array list, and increased the quantity
$_SESSION[“products”] = $product;
}
}else{
//create a new session var if does not exist
$_SESSION[“products”] = $new_product;
}
}
//redirect back to original page
header(‘Location:’.$return_url);
}
//remove item from shopping cart
if(isset($_GET[“removep”]) isset($_GET[“return_url”]) isset($_SESSION[“products”]))
{
$product_code = $_GET[“removep”]; //get the product code to remove
$return_url = base64_decode($_GET[“return_url”]); //get return url
foreach ($_SESSION[“products”] as $cart_itm) //loop through session array var
{
if($cart_itm[“code”]!=$product_code){ //item does,t exist in the list
$product[] = array(‘name’=$cart_itm[“name”], ‘code’=$cart_itm[“code”], ‘qty’=$cart_itm[“qty”], ‘price’=$cart_itm[“price”]);
}
//create a new product list for cart
$_SESSION[“products”] = $product;
}
//redirect back to original page
header(‘Location:’.$return_url);
}
?
view_cart.php
PHP Code
div class=”view-cart”
?php
$current_url = base64_encode($url=”http://”.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’]);
if(isset($_SESSION[“products”]))
{
$total = 0;
echo ‘form method=”post” action=”paypal-express-checkout/process.php”‘;
echo ‘ul’;
$cart_items = 0;
foreach ($_SESSION[“products”] as $cart_itm)
{
$product_code = $cart_itm[“code”];
$results = $mysqli-query(“SELECT product_name,product_desc, price FROM cart WHERE product_code=’$product_code’ LIMIT 1”);
$obj = $results-fetch_object();
echo ‘li class=”cart-itm”‘;
echo ‘span class=”remove-itm”a href=”cart_update.php?removep=’.$cart_itm[“code”].’return_url=’.$current_url.'”×/a/span’;
echo ‘div class=”p-price”‘.$currency.$obj-price.’/div’;
echo ‘div class=”product-info”‘;
echo ‘h3′.$obj-product_name.’ (Code :’.$product_code.’)/h3 ‘;
echo ‘div class=”p-qty”Qty : ‘.$cart_itm[“qty”].’/div’;
echo ‘div’.$obj-product_desc.’/div’;
echo ‘/div’;
echo ‘/li’;
$subtotal = ($cart_itm[“price”]*$cart_itm[“qty”]);
$total = ($total + $subtotal);
echo ‘input type=”hidden” name=”item_name[‘.$cart_items.’]” value=”‘.$obj-product_name.'” /’;
echo ‘input type=”hidden” name=”item_code[‘.$cart_items.’]” value=”‘.$product_code.'” /’;
echo ‘input type=”hidden” name=”item_desc[‘.$cart_items.’]” value=”‘.$obj-product_desc.'” /’;
echo ‘input type=”hidden” name=”item_qty[‘.$cart_items.’]” value=”‘.$cart_itm[“qty”].'” /’;
$cart_items ++;
}
echo ‘/ul’;
echo ‘span class=”check-out-txt”‘;
echo ‘strongTotal : ‘.$currency.$total.’/strong ‘;
echo ‘/span’;
echo ‘/form’;
}else{
echo ‘Your Cart is empty’;
}
?
/div
/div
php關於用數據庫作為購物車的原理
我來解答一下你的疑惑
買了兩個產品。那就是執行了兩次
insert
into
temp_table
(uid,productid,pnum,poneprice,ptotalprice)
如果
productid相同則,
pnum
=
pnum+1;
ptotalprice
=
pnum*poneprice
假設前提是
當前兩條記錄的產品不同,那麼購物車列表則是循環讀取temp_table列出現有符合條件之產品,數量,價格。
修改2個產品數量的時候,
提交後,同樣的文本框pnum為一個數組,productid為一個數組
獲取pnum,productid,並且用
split分析後,
分別update
update
temp_table
set
pnum='”.$pnum[0].”‘,ptotalprice=’..省略.’
where
uid=自己的uid
and
productid='”.$productid[0].”‘
注意,這裡數組下標要對應好,你可以用個循環。
最後,當訂單下好之後,要把臨時表的數據轉移到正式表中,並且清理掉當前這個用戶臨時表的內容即可。
php session實現購物車的原理
session_start;
然後原理就是,建立一個數組,$_SESSION[‘wupin’][]=選中的物品的ID,然後就可以了,如果用戶取消,就把他選擇取消的那個ID的鍵從數組裡刪除就行。
網站購物車是怎麼個原理。對數據庫表配哪些字段想不明白。請假大俠們。
第一:做購物車,一般來說是不存入數據庫這樣數據量比較大並且查詢效率慢,所以一般購物車都用Session,或Cookie來實現,建一個購物車實體類,大概有這些字段,商品ID,用戶ID,數量…等這可以根據自己需要來設置,然後比如購買一件商品添加到購物車就創建一個hashtable來保存購物車裡的信息,然後把hashtable保存到Session或Cookie,大致就這樣。
第二:訂單,你說的那個訂單一般都有一個訂單表的。首先要弄清楚流程,肯定是用戶先將產品加入購物車,然後再提交訂單的。為什麼會訂單下了以後還關購物車的事呢?購物車只是臨時保存用戶購買產品的地方。就像超市裡去賣東西首先推一個車,然後去選購你要的產品,最後付款。對應這車只是你保存東西的一個工具,當你購買完畢後就不會和他有什麼聯繫了。如果你後面需要退貨你也只管那張單據(對應產品訂單)而不會和你購物車車上聯繫。
不知道我這樣講你是否明白!
PHP中用json實現購物車功能,怎麼實現
購物車中至少包含 以下信息:
商品ID,商品名稱,商品價格,購買數量,(其他如果有)
把以上信息組成一個數組,
每購買一件商品,就生成一個這樣的數組,多個數組組成一個大數組,
然後將這個二維數組轉成JSON格式存入COOKIE即可。在購物車頁面加載時,讀取COOKIE內的這個JSON,然後再轉成數組輸出到頁面即可。
PHP數組轉JSON:json_encode
JSON轉數組:json_decode
php 實現 購物車 提交到 訂單的數據庫
用戶登陸後系統應該會分配一個session : id,這個id應該是改用於的用戶表id。然後再做一個購物車的表,裡面可以只考慮存商品id、用戶id等關鍵信息;
當用戶提交購買的時候再做相關的操作,具體可以參考淘寶、天貓的購物車已經後續付款效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/233598.html