导航:首页 > 编程语言 > php购物车逻辑

php购物车逻辑

发布时间:2022-09-02 20:33:37

php购物车计算总价问题~循环。。。数组。。相加。。

//如果你需要得到最后所以相加的结果,不需要再赋值一个arr然后再把arr入数组:

$sum=[];//这是所有价格
while(true){
//...
$totol=$row1[1]*$row[3];
$sum[]=$totol;
}
//想算出总价,循环这个数组即可,如果只需要总价就不需要放入数组了,直接在循环中累加就可以了:

$sum=0;
while(true){
//...
$totol=$row1[1]*$row[3];
$sum+=$totol;
}

echo'你的总价:'.$sum;

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

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

㈢ 【高分】急求用php写的购物车代码!!!!!(十万火急)如果您提供的好用还有加分!!!

我也要弄一个这种购物车,
我去写个,贴出来,【嘿嘿,今天上午新写的】。
我懒得新建数据库,用的是我的数据库。
你按照我的改一下就能用了
本人水平有限,高手请指正。
你,大,爷的,虽然不咋地,保证能用
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
经过调试,
//$my->add_cart(45,3,"茶几系列");//新增购物
//$my->updata_cart(13,13,8); //更新购物
//$my->del_cart(12,5,'Guest'); //删除一种购物
//$my->empty_cart('Guest'); //清空购物车
$ok=$my->get_cart('Guest'); //返回购物车
这些都可用
-------------------------------------------------------------------
<?php

class Cart
{

public $totalCost=0; //商品总金额

function cart($host,$usr,$pwd,$db)
{
mysql_connect($host,$usr,$pwd) or die(mysql_error);
mysql_select_db($db) or die(mysql_error);
mysql_query("SET Names GBk");
//只要有人访问,就自动清除一天前所有没付款的订单;
$sql="delete FROM shopcart WHERE TO_DAYS( NOW( )) - TO_DAYS( ptime ) >=1 and payment=0";
mysql_query($sql);

}

// 弹出提示
function alter($Str,$Url)
{
echo "<Script language='JavaScript'> alert('".$Str."');</Script>";
echo "<meta http-equiv=refresh content=0;URL=".$Url.">";
}

//增加购物;三个参数:pid:产品ID,ptl:产品数量,pcid:产品类别
//查询数据库,是否存在此人在本日内订过本产品
//如果订过,那么数量累加,否则插入一个数据库行
function add_cart($pid,$ptl=1,$pcid)
{
if($ptl>=100 || $ptl<=0)
{
$this->alter("最多买99件,最少1件","index.php");
die();
}

if(!$_SESSION['usr']) { $usr='Guest';}
else { $usr=$_SESSION['usr'];}

$sql="select * from shopcart where pid='".$pid."' and usr='".$usr."' and pcid='".$pcid."'";
$ex=mysql_query($sql);
$ex1=mysql_fetch_array($ex);

if(!$ex1)
{
$sql="select * from proct where ID='".$pid."' and class1='".$pcid."'";
$ok=mysql_query($sql);
$rs=mysql_fetch_array($ok);

if($rs)
{
$totalCost= $rs['Price'] * $ptl;

$sql="insert into shopcart(usr,pid,pname,ptl,price,pcid,psum,payment) Values(";
$sql.="'".$usr."',";
$sql.="'".$rs['ID']."',";
$sql.="'".$rs['Name']."',";
$sql.="'".$ptl."',";
$sql.="'".$rs['Price']."',";
$sql.="'".$rs['Class1']."',";
$sql.="'".$totalCost."',";
$sql.="'0')";

mysql_query($sql) or die(mysql_error());
if($ok) { $this->alter("购物成功","index.php"); }
else { $this->alter("购物失败","index.php"); }

}
else
{
$this->alter("不存在的商品,或者参数错误","index.php");
die();
}
}
else
{
$sql="update shopcart set ptl= ptl+1,psum = psum+price where ID='".$ex1['ID']."'";
mysql_query($sql);
$this->alter("更新数量成功","index.php");
}

}

//更新购物车的单个产品的数量;
function updata_cart($cid,$ptl,$pid)
{
if($ptl>=100||$ptl<=0)
{
$this->alter('产品数量不对!','index.php');
die();
}
$sql="select * from shopcart where ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!ok) { alter("参数发生错误","index.php");}
else
{
$sql="update shopcart set ptl='".$ptl."',psum=price * '".$ptl."' where ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!ok) { $this->alter("更新失败","index.php");}
else { $this->alter("更新成功","index.php");}
}
}
function del_cart($cid,$pid,$usr)
{
$sql="delete from shopcart where usr='".$usr."' and ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!$ok) {$this->alter("删除失败","index.php");}
else {$this->alter("删除成功","index.php");}
}

function empty_cart($usr)
{
$sql="delete from shopcart where usr='".$usr."'";
mysql_query($sql) or die(mysql_error);
}

function get_cart($usr)
{
$sql="select * from shopcart where usr='".$usr."'";
$ok=mysql_query($sql);
return $ok;
}

}
$my = new Cart("localhost","root","root","mybbs");
//$my->add_cart(45,3,"茶几系列");
//$my->updata_cart(13,13,8);
//$my->del_cart(12,5,'Guest');
//$my->empty_cart('Guest');
$ok=$my->get_cart('Admin');

echo "usr pid pname ptl price pcid psum payment ptime <br><hr><br>";
while($rs=mysql_fetch_array($ok))
{
echo $rs[1]."->".$rs[2]."->".$rs[3]."->".$rs[4]."->".$rs[5]."->".$rs[6]."->".$rs[7]."->".$rs[8]."->".$rs[9]."<br>";

}

?>

、、、、、、、、、、、、、、、、、SQL、、、、、、、、、、、、、、

CREATE TABLE IF NOT EXISTS `shopcart` (
`ID` int(10) NOT NULL auto_increment,
`usr` varchar(50) NOT NULL,
`pid` int(5) NOT NULL,
`pname` varchar(100) NOT NULL,
`ptl` int(3) NOT NULL,
`price` decimal(50,2) NOT NULL default '0.00',
`pcid` varchar(100) NOT NULL,
`psum` decimal(50,2) NOT NULL default '0.00',
`payment` tinyint(1) NOT NULL,
`ptime` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
)

proct 里面用的ID CLASS1是

`ID` int(6) NOT NULL auto_increment,
`Class1` varchar(20) NOT NULL,
`Price` int(6) NOT NULL,

㈣ 跪求一份PHP购物车的源码 只要求不到 我就一直等 等到天荒等到地老

源码我这里没有。而且找出来的源码也未必适合你。
给你说一下购物车的思路吧,希望对你有帮助
1.现在互联网的购物车.一般都采用cookie来做的.
a.用户点击"加入购物车",把当前物品id,按照某种形式,写入cookie.
b.代码思路.$_COOKIE['car']可以理解为就是购物车.里面是物品id;
$car = $_COOKIE['car']; //先读取购物车
$car = $car ? explode(',',$car) : array(); //如果购物车有物品,则把物品转化成数组,如果没有则默认成空数组;
$car[] = $goods_id; //往购物车中增加该物品;
$car = implode(','.$car); //把购物车中的所有物品id,转化成字符串。这便于存贮在cookie中,直接存数组也可以。但是如果你需要把整个购物车信息加密的话,那就应该只有字符串了。
setcookie('car',$car,time()+3600); //购物车存1个小时,这个时间可以设置的长一点;

2.也可以通过数据库来实现;但前提是必须要用户登陆才可以。
table_car
uid
goods_id
datetime
1.每次用户点击“加入购物车”,往数据库中写入,该条信息就好了。
这种情况需要注意,在一定的时间段外,需要清空之前的信息。所以这里设置了datetime;

这个只是简单的购物车原理。里面还有一些其他细节。
1.比如说物品的数量。
2.cookie信息的加密和解密.
..........
3.才用数据库方式,需要清空哪些购物数据

㈤ PHP怎么做购物车

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

㈥ php怎么用session做购物车

class cart
{
/**
* 函数名称: addItem
* 函数功能: 添加商品
* 输入参数: $data ------------- 商品数组
* 函数返回值: none
* 其它说明: 因为数据是记录在session中,所以不用返回
*/
function addItem($data){
global $config_ke;
if(is_array($data)&&!empty($data)){
foreach($data as $key=>$val){
// 如果商品存在就加数量和价格
if($this->_isExists($key)){

$_SESSION['cart'][$key]["paddy_count"] += $val['paddy_count'];
$_SESSION['cart'][$key]["market_count"] += $val['market_count'];
$_SESSION['cart'][$key]["goodsnum"] += intval($val['goodsnum']);
$arr = $this->getItems($key);
// $_SESSION['cart'][$key]["count"] += $_SESSION['cart'][$key]["price"];
/* if(strlen($_SESSION['cart'][$key]["ke"])>0){//没有刻字,加入刻字
$_SESSION['cart'][$key]["eng_price"]=0;
$_SESSION['cart'][$key]["eng_price"]=(int)$config_ke*intval($arr['num']);
}else{
//die("dd");
$_SESSION['cart'][$key]["eng_price"]=0;
}*/
//echo $arr['num'];
//die();

}
// 否则直接加入
else
{
$_SESSION['cart'][$key] = $data[$key];
// $_SESSION['cart'][$key]["name"] = $val['name'];
// $_SESSION['cart'][$key]["price"] = $val['price'];
// $_SESSION['cart'][$key]["count"] = round($val['price']*intval($val['num']),2);
// $_SESSION['cart'][$key]["num"] = intval($val['num']);
}
}
}
}

/**
* 函数名称: _isExists
* 函数功能: 判断此商品是否存在
* 输入参数: $id ---------- 商品ID
* 函数返回值: bool
* 其他说明: 2004-8-19
*/
function _isExists($id)
{

if(isset($_SESSION['cart'][$id])&&!empty($_SESSION['cart'][$id])&&array_key_exists($id,$_SESSION['cart']))
{
Return true;
}
else
{
Return false;
}
}

/**
* 函数名称: modItem
* 函数功能: 修改商品数量
* 输入参数: $id -------------- 商品ID
* $num ------------- 商品数量
* 函数返回值: 返回值说明
* 其他说明: 说明
*/
function modItem($id,$num)
{
$arr = $this->getItems($id);
// 如果商品存在就加数量和价格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["goodsnum"] = intval($num);
if($arr['paddy_price_special'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price_special']*intval($num),2);
}elseif($arr['paddy_userprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_userprice']*intval($num),2);
}elseif($arr['paddy_spreadprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_spreadprice']*intval($num),2);
}else{
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price']*intval($num),2);
}
$_SESSION['cart'][$id]["market_count"] = round($arr['market_price']*intval($num),2);
}
}

/**
* 函数名称: modItem_wanwei
* 函数功能: 修改商品腕围
* 输入参数: $id -------------- 商品ID
* $num ------------- 商品腕围
* 函数返回值: 返回值说明
* 其他说明: 说明
*/
function modItem_wanwei($id,$wanwei)
{
$arr = $this->getItems($id);
// 如果商品存在就加数量和价格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["wanwei"] = intval($wanwei);

///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}
}

// function modItem_ke($id,$ke)
// {
// global $config_ke;
// $arr = $this->getItems($id);
// // 如果商品存在就加数量和价格
// if($this->_isExists($id))
// {
// $_SESSION['cart'][$id]["ke"] = $ke;
// $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_ke;
// $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
// }
// }

function modItem_ke($id,$ke,$ke1="",$ke2="")
{
global $config_ke;
$arr = $this->getItems($id);
// 如果商品存在就加数量和价格
//var_mp($_SESSION['cart']);
// die();
if($this->_isExists($id))
{
if(strlen($_SESSION['cart'][$id]["ke"]) == 0 && strlen($ke) != 0){//没有刻字,加入刻字
//$arr['price'] += $config_ke;
$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);
//$_SESSION['cart'][$id]["price"] = $arr['price'];
// $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) == 0){//有刻字,去除刻字
$_SESSION['cart'][$id]["eng_price"]=0;
//$_SESSION['cart'][$id]["eng_price"]-=(int)$config_ke*intval($arr['num']);
// $_SESSION['cart'][$id]["eng_price"]-=$config_ke;
//$_SESSION['cart'][$id]["price"] = $arr['price'];
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) != 0){//有刻字,更改刻字
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
//$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);

$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}
}
}

/**
* 函数名称: getItems
* 函数功能: 取得商品数组
* 输入参数: $id --------------- 某商品的ID
* 函数返回值: array
* 其它说明: 2004-8-19
*/
function getItems($id=null)
{
if(isset($_SESSION['cart']))
{
if($id==null)
{
//print_r($_SESSION['cart']);exit;
Return $_SESSION['cart'];
}
else
{
Return $_SESSION['cart'][$id];
}
}
}

/**
* 函数名称: emptyItem
* 函数功能: 删除商品
* 输入参数: $id ----------- 商品ID
* 函数返回值: bool
* 其它说明: 2004-8-19
*/
function emptyItem($id=null)
{
if($id==null)
{
unset($_SESSION['cart']);
}
else
{
unset($_SESSION['cart'][$id]);
}
}

/**
* 函数名称: sum
* 函数功能: 统计总价
* 输入参数: none
* 函数返回值: int
* 其它说明: 2004-8-19
*/
function sum()
{
$total = 0;
if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $key=>$val)
{
$total += $val['count'];
}
}
Return $total;
}
}

㈦ php是怎么实现购物车的,SESSION 和cookie 在哪里会用到

购物车就是用session来实现的。session和cookie的不同主要在于前者保存在服务器端,而后者保存在客户端电脑上。比如用户登录,浏览器经常提示你是否保存登录信息,如果保存了,就新建了一个cookie在你的电脑上。而像购物车之类,或者用户登录状态,则是用session。

㈧ 用php结合cookie实现购物车的一些问题

URL传递的参数可以在连接后的程序中直接使用,如:
<a href="zancunjia.php?a1=YF0001&b1=500&c1=8888&d1=YF0001.html ">链接1</a><br/>
zancunjia.php中可以用$a1来的到a1,类推……
COOKIE可以使用setcookie()函数设置!
使用已设置的COOKIE是用全局变量:$_COOKIE['***']!***是所设置的键值……

如果是购物车,我举得不应该使用cookie来保存信息,而是要用session,这样比较好一些!

㈨ PHP 如何能通过URL传递session

你将session的值放在地址参数就可以了,
http://192.168.1.100/general/email/id=$_SESSION['id']
另外, SESSION 是全局的, 可以不用地址带参数传递的, 只要SESSION注册这个key就可以了

㈩ 怎样用php作购物车的添加功能

这个应该不难的啊,你买一个东西的时候,把这个东西的详细信息存入数据库或者放入SESSION中,进入购物车页面直接遍历就OK了。不会我可以教你,

阅读全文

与php购物车逻辑相关的资料

热点内容
思科常用配置命令 浏览:377
水容易被压缩吗 浏览:753
java项目试题 浏览:315
为什么安卓拍照没有苹果成相快 浏览:516
安卓版的苹果手机叫什么 浏览:373
手机怎么解压文件夹压缩包 浏览:459
起源任务咋解压 浏览:976
加密式的监督检查 浏览:549
光遇怎么分辨安卓国服和渠道服 浏览:242
ico解压教程 浏览:632
程序员偏右 浏览:17
超算上可以进行vasp编译嘛 浏览:174
北京通app怎么注册登录 浏览:820
iphone上的数据怎么转移到安卓 浏览:743
python求每个时段平均值 浏览:244
安卓手机右上出现Hg什么意思 浏览:69
程序员神经 浏览:753
dns服务器在电脑上有什么用 浏览:915
杭州大妈喜欢程序员 浏览:687
python评论树讲解 浏览:680