导航:首页 > 编程语言 > php购物车数据库

php购物车数据库

发布时间:2022-06-12 12:02:59

A. php怎么做购物车

购物车
有两种实现方式,一种是保存在数据库,另外一种是session
保存在数据库的不会以为关闭浏览器而消失,session会因为关闭浏览器就没有了。
原理是把每个商品的信息存到一个数组里面,然后以这个商品的id作为键值,然后吧数组存到session里面就行,
如果是存入数据库的话,就用关联数据存一下就行的

B. 如何用html css javascript php制作购物车

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="---.css">
<script src="---.js"></script>
</head>
<body>
<div class="container">
<div class="shop">
<div class="header">
<input type="checkbox" class="shop-checkbox">
<span class="shop-icon"></span>
<span class="shop-name">---</span>
<span class="wangwang-icon"></span>
</div>
<div class="items">
<div class="item">
<div><input class="item-checkbox" type="checkbox" name="" id=""></div>
<div>
<span class="item-img"></span>
</div>
<div class="item-name">
<div>----</div>
<div class="promotion-icons"><span></span><span></span><span></span></div>
</div>
<div class="sku">---</div>
<div class="price">
<div class="price-1">---</div>
<div class="price-2" data-price="---">----</div>
</div>
<div class="num-control">
<span class="num-minus">-</span>
<input class="num" type="text" value="1">
<span class="num-plus">+</span>
</div>
<div class="item-price-total">
<span>¥50.13</span>
</div>
<div class="operation">
<div>---</div>
<div>---</div>
</div>
</div>
</div>
</div>

<div class="shop">
<div class="header">
<input type="checkbox" class="shop-checkbox">
<span class="shop-icon"></span>
<span class="shop-name">---</span>
<span class="wangwang-icon"></span>
</div>
<div class="items">
<div class="item">
<div><input class="item-checkbox" type="checkbox" name="" id=""></div>
<div>
<span class="item-img"></span>
</div>
<div class="item-name">
<div>----</div>
<div class="promotion-icons"><span></span><span></span><span></span></div>
</div>
<div class="sku">---</div>
<div class="price">
<div class="price-1">---</div>
<div class="price-2" data-price="---">---</div>
</div>
<div class="num-control">
<span class="num-minus">-</span>
<input class="num" type="text" value="1">
<span class="num-plus">+</span>
</div>
<div class="item-price-total">
<span>¥9.90</span>
</div>
<div class="operation">
<div>移入收藏夹</div>
<div>删除</div>
</div>
</div>

<div class="item">
<div><input class="item-checkbox" type="checkbox" name="" id=""></div>
<div>
<span class="item-img"></span>
</div>
<div class="item-name">
<div>---</div>
<div class="promotion-icons"><span></span><span></span><span></span></div>
</div>
<div class="sku">---</div>
<div class="price">
<div class="price-1">---</div>
<div class="price-2" data-price="---">---</div>
</div>
<div class="num-control">
<span class="num-minus">-</span>
<input class="num" type="text" value="1">
<span class="num-plus">+</span>
</div>
<div class="item-price-total">
<span>¥19.9</span>
</div>
<div class="operation">
<div>移入收藏夹</div>
<div>删除</div>
</div>
</div>
</div>

</body>
</html>

.container{
width: 1000px;
margin-left: auto;
margin-right: auto;
color: #444444;
}
.header{
margin: 8px;
}
.shop-icon, .wangwang-icon, .promotion-icons span{
display:inline-block;
width: 15px;
height: 15px;
background-color: rgb(117,192,241);
}
.promotion-icons span{
margin-right: 4px;
}
.items{
border: 1px solid #ebe9e9;
}
.item{
display: flex;
margin: 8px;
}
.item-img{
width:100px;
height: 100px;
display: inline-block;
background-color: aquamarine;
margin-left: 6px;
margin-right: 6px;
}
.item-name
{
display: flex;
flex-direction: column;
justify-content: space-between;
}
.sku, .price,.item-price-total,.operation,.num-control{
margin-left: 18px;
}
.num{
width: 18px;
height: 15px;
}
.num-control{
display: flex;
align-items: baseline;
}
.num-minus,.num-plus{
width: 18px;
height: 22px;
display: inline-block;
background-color: #ebe9e9;
}
.checkout{
display: flex;
justify-content: space-between;
}
.shop{
margin-bottom: 20px;
margin-top: 30px;
}
.goods,.freight,.checkout-button{
margin-left: 15px;
}
.price-1{
text-decoration: line-through;
color: gray;
}
.check-num ,.total-price{
font-size: large;
color: red;
margin-left: 3px;
margin-right: 3px;
}
.checkout-button{
height: 30px;
width: 50px;
background-color: beige;
}
.checkout{
margin-top: 15px;
}
.item-name{
width: 25%;
}
.item-price-total{
width: 5%;
}
.sku{
width: 20%;
}
function updatePrice(){
let items = document.querySelectorAll('.item');
let totalNum = 0;
let totalPrice = 0;
items.forEach(function(item){
if(item.querySelector('.item-checkbox').checked){
let num = item.querySelector('.num').value;
totalNum = totalNum + parseInt(num);
let price = item.querySelector('.price-2').getAttribute('data-price');
totalPrice = totalPrice + parseFloat(price) * num;
}
});
document.querySelector('.check-num').innerText= totalNum;
document.querySelector('.total-price').innerText = totalPrice;
}

window.onload=function(){
let itemCheckboxes = document.querySelectorAll('.item-checkbox');
itemCheckboxes.forEach(function(itemCheckbox){
itemCheckbox.onchange = function(){
updatePrice();
}
});

let minuses = document.querySelectorAll('.num-minus');
minuses.forEach(function(minus){
minus.onclick = function(event){
let num=minus.parentElement.querySelector('.num').value;
if(parseInt(num)>1)
{
minus.parentElement.querySelector('.num').value=parseInt(num)-1;
updatePrice();
}
};
});

let pluses = document.querySelectorAll('.num-plus');
pluses.forEach(function(plus){
plus.onclick = function(event){
let num=plus.parentElement.querySelector('.num').value;
plus.parentElement.querySelector('.num').value=parseInt(num)+1;
updatePrice();
}
});
}

C. php的购物车中的数组在下订单时怎样传到数据库中

在数据库中弄一个设置一个数组字段,然后接受ID
SQL语句查询,正常输出;

打算数组:
$infoarray=explode('|,|',$row[infoarray']);
然后输出:
<?php echo infoarray$infoarray[0]?> //例如:数量
<?php echo infoarray$infoarray[1]?> //例如:单价(当然可以更多...)

D. 请教关于PHP购物车代码的数据库表和字段

PHP Code
<div id="procts-wrapper">
<h1>Procts</h1>
<div class="procts">
<?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="proct">';
echo '<form method="post" action="cart_update.php">';
echo '<div class="proct-thumb"><img src="images/'.$obj->proct_img_name.'"></div>';
echo '<div class="proct-content"><h3>'.$obj->proct_name.'</h3>';
echo '<div class="proct-desc">'.$obj->proct_desc.'</div>';
echo '<div class="proct-info">';
echo 'Price '.$currency.$obj->price.' | ';
echo 'Qty <input type="text" name="proct_qty" value="1" size="3" />';
echo '<button class="add_to_cart">Add To Cart</button>';
echo '</div></div>';
echo '<input type="hidden" name="proct_code" value="'.$obj->proct_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">
<h2>Your Shopping Cart</h2>
<?php
if(isset($_SESSION["procts"]))
{
$total = 0;
echo '<ol>';
foreach ($_SESSION["procts"] 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"><strong>Total : '.$currency.$total.'</strong> <a href="view_cart.php">Check-out!</a></span>';
echo '<span class="empty-cart"><a href="cart_update.php?emptycart=1&return_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')
{
$proct_code = filter_var($_POST["proct_code"], FILTER_SANITIZE_STRING); //proct code
$proct_qty = filter_var($_POST["proct_qty"], FILTER_SANITIZE_NUMBER_INT); //proct code
$return_url = base64_decode($_POST["return_url"]); //return url
//limit quantity for single proct
if($proct_qty > 10){
die('<div align="center">This demo does not allowed more than 10 quantity!<br /><a href="http://sanwebe.com/assets/paypal-shopping-cart-integration/">Back To Procts</a>.</div>');
}
//MySqli query - get details of item from db using proct code
$results = $mysqli->query("SELECT proct_name,price FROM cart WHERE proct_code='$proct_code' LIMIT 1");
$obj = $results->fetch_object();
if ($results) { //we have the proct info
//prepare array for the session variable
$new_proct = array(array('name'=>$obj->proct_name, 'code'=>$proct_code, 'qty'=>$proct_qty, 'price'=>$obj->price));
if(isset($_SESSION["procts"])) //if we have the session
{
$found = false; //set found item to false
foreach ($_SESSION["procts"] as $cart_itm) //loop through session array
{
if($cart_itm["code"] == $proct_code){ //the item exist in array
$proct[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$proct_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
$proct[] = 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["procts"] = array_merge($proct, $new_proct);
}else{
//found user item in array list, and increased the quantity
$_SESSION["procts"] = $proct;
}
}else{
//create a new session var if does not exist
$_SESSION["procts"] = $new_proct;
}
}
//redirect back to original page
header('Location:'.$return_url);
}
//remove item from shopping cart
if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["procts"]))
{
$proct_code = $_GET["removep"]; //get the proct code to remove
$return_url = base64_decode($_GET["return_url"]); //get return url
foreach ($_SESSION["procts"] as $cart_itm) //loop through session array var
{
if($cart_itm["code"]!=$proct_code){ //item does,t exist in the list
$proct[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]);
}
//create a new proct list for cart
$_SESSION["procts"] = $proct;
}
//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["procts"]))
{
$total = 0;
echo '<form method="post" action="paypal-express-checkout/process.php">';
echo '<ul>';
$cart_items = 0;
foreach ($_SESSION["procts"] as $cart_itm)
{
$proct_code = $cart_itm["code"];
$results = $mysqli->query("SELECT proct_name,proct_desc, price FROM cart WHERE proct_code='$proct_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="proct-info">';
echo '<h3>'.$obj->proct_name.' (Code :'.$proct_code.')</h3> ';
echo '<div class="p-qty">Qty : '.$cart_itm["qty"].'</div>';
echo '<div>'.$obj->proct_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->proct_name.'" />';
echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$proct_code.'" />';
echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->proct_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 '<strong>Total : '.$currency.$total.'</strong> ';
echo '</span>';
echo '</form>';
}else{
echo 'Your Cart is empty';
}
?>
</div>
</div>

E. 请问一下php做购物车为什么要用SESSION来实现呢

就跟Cookie一样,不同访客存储的数据不一样,这些数据如果存放到数据库中,不太方便,可以存放到radis或者SESSION中,直接存储到cookie中的话,会产生客户端可以篡改的问题,所以折中的话使用session算是最常规的方法。

F. 我用PHP做的购物车,为什么每次往购物车中添加不同商品 ,购物车中确显示的同一件商品啊

这个需要看你的购物车结构。
一般一个属性的商品是在一条数据里面,多次加入只是更改数量
不同属性的商品应该分多条数据保存。最后购物车统计的是总的数量

G. php 实现 购物车 提交到 订单的数据库

用户登陆后系统应该会分配一个session : id,这个id应该是改用于的用户表id。然后再做一个购物车的表,里面可以只考虑存商品id、用户id等关键信息;
当用户提交购买的时候再做相关的操作,具体可以参考淘宝、天猫的购物车已经后续付款效果。

H. 商品放入购物车时减库存,购物车在20分钟后,清除所有商品,这个时候库存重新加上去,PHP怎么实现

没有正式下单,库存为什么要减掉?这个是最大弊端啊。
如果要实现,就要在加入购物车的时候生成订单号,读取商品数量,连带订单号录入数据库,由数据库进行减少一次,把结果反馈成为库存。
如果移除购物车,就删除订单号,结果同样反馈如数据库,删除订单号的条目,数据库更新一次,库存也重新刷新读取一次,
大体这样,代码自己搞

I. php实现购物车都有哪些方法除了session和cookie还有别的吗

看需求.
上面那位同学说,可以把数据直接入库,但这个是要建立在,要有用户登陆的情况下才能实现的.

否则,只能用cookie或者session

J. php购物车显示数量加载问题

像这种动态数据的改变,必须要由ajax实现的。
你可以在按钮上添加一个js事件,每当加减的时候,调用后台那个function方法。
把参数传好,就能够得到具体的数据了。

阅读全文

与php购物车数据库相关的资料

热点内容
oa服务器异常怎么办 浏览:68
cmd编译utf8 浏览:276
怎么截取app接受的数据 浏览:276
nrf24l01pdf 浏览:298
php字符串转array 浏览:434
U盘分了文件夹后 浏览:940
javasetstring 浏览:837
压缩包里文件夹是白色的 浏览:472
编译链接知乎 浏览:591
php查询按钮 浏览:715
有音响游戏解压神器 浏览:253
怎么压缩图片jpeg 浏览:713
澳大利亚net程序员 浏览:579
程序员加班难受 浏览:990
如何看服务器品牌 浏览:256
ecy50clp压缩机多少W 浏览:755
mac终端命令怎么保存 浏览:850
微信公众号图片压缩 浏览:440
可以在安卓平板上画画的软件是什么 浏览:438
高盛数字加密 浏览:897