php購物車資料庫原理,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-tw/n/233598.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 17:10
下一篇 2024-12-11 17:10

相關推薦

  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Harris角點檢測演算法原理與實現

    本文將從多個方面對Harris角點檢測演算法進行詳細的闡述,包括演算法原理、實現步驟、代碼實現等。 一、Harris角點檢測演算法原理 Harris角點檢測演算法是一種經典的計算機視覺演算法…

    編程 2025-04-29
  • 瘦臉演算法 Python 原理與實現

    本文將從多個方面詳細闡述瘦臉演算法 Python 實現的原理和方法,包括該演算法的意義、流程、代碼實現、優化等內容。 一、演算法意義 隨著科技的發展,瘦臉演算法已經成為了人們修圖中不可缺少…

    編程 2025-04-29
  • 神經網路BP演算法原理

    本文將從多個方面對神經網路BP演算法原理進行詳細闡述,並給出完整的代碼示例。 一、BP演算法簡介 BP演算法是一種常用的神經網路訓練演算法,其全稱為反向傳播演算法。BP演算法的基本思想是通過正…

    編程 2025-04-29
  • 枚舉法例題及解題思路

    本文將從例題和解題思路兩個方面闡述枚舉法,幫助讀者更好地理解和掌握該演算法。 一、基本概念 枚舉法,英文名為Brute Force,也叫暴力枚舉法,是一種計算機演算法,它通過窮舉所有可…

    編程 2025-04-29
  • 優秀周記1000字的撰寫思路與技巧

    優秀周記是每個編程開發工程師記錄自己工作生活的最佳方式之一。本篇文章將從周記的重要性、撰寫思路、撰寫技巧以及周記的示例代碼等角度進行闡述。 一、周記的重要性 作為一名編程開發工程師…

    編程 2025-04-28
  • 象棋演算法思路探析

    本文將從多方面探討象棋演算法,包括搜索演算法、啟發式演算法、博弈樹演算法、神經網路演算法等。 一、搜索演算法 搜索演算法是一種常見的求解問題的方法。在象棋中,搜索演算法可以用來尋找最佳棋步。經典的…

    編程 2025-04-28
  • GloVe詞向量:從原理到應用

    本文將從多個方面對GloVe詞向量進行詳細的闡述,包括其原理、優缺點、應用以及代碼實現。如果你對詞向量感興趣,那麼這篇文章將會是一次很好的學習體驗。 一、原理 GloVe(Glob…

    編程 2025-04-27
  • 編譯原理語法分析思維導圖

    本文將從以下幾個方面詳細闡述編譯原理語法分析思維導圖: 一、語法分析介紹 1.1 語法分析的定義 語法分析是編譯器中將輸入的字元流轉換成抽象語法樹的一個過程。該過程的目的是確保輸入…

    編程 2025-04-27
  • Python字典底層原理用法介紹

    本文將以Python字典底層原理為中心,從多個方面詳細闡述。字典是Python語言的重要組成部分,具有非常強大的功能,掌握其底層原理對於學習和使用Python將是非常有幫助的。 一…

    編程 2025-04-25

發表回復

登錄後才能評論