如果看了我这个代码还不会购物车,那我就要去自杀了~
!
购
物车主要是利用
session
传值和动态数组来实现的
为
了描述方便,我在这里做一些设置,物品显示页面为
wupin.php
,
购物车
页面为:
gwc.php,
物品以
ID
控制,
现在有两个物品,
ID
分别为
1
和
2
物
品页面显示物品,物品下面有个链接
“
添加到购物车
”
,点这
个链接可以把这个物品添加到购物车,这个链接实际上是个超级链接,并给
gwc.php
传递一
个参数,这个参数就是物品的
ID
,这里我们这样写
:<a
href="gwc.php?id=1">
添加到购物车
</a>,
到这
里,
wupin.php
就完成了他的功能了,下面我主要讲一下
gwc.php
的购物
车实现思路以及相关代码实现,吼吼,鼓掌
~~~~~
在
购物车页面,要检测从
wupin.php
传递过来的参数是否是第一次传过来
?
如果是第一次传递过来,说明浏览者是第一次添加该物品,那么我们就把该物品的数量设置为
1
,如果不
是第一次传递过来,那么可能是浏览者觉得买一个不够,还想再买一个或者多个,那么我们就要把这个物品的数量增加一个,下面我讲一下具体实现(掌声哗哗的)
在
gwc.php
页面
,
我们首先要开始一个会话
session_start();---
因为是
用
session
,所以要开始
~
!
$id=$_GET[‘id’];
这个用
来得到传递过来的
id
。
首先,如果用户没有添加物品到购物车,那么这个购物车是空的,我们需要创建一个购物车,代码如下所示
If(!isset($_SESSION[‘cart’]))
{
$_SESSION[‘cart’]=array();//这个就是添加物品的动态数组
$_SESSION[‘items’]=0;//
这个是每个物品的数量
$_SESSION[‘total_price’]=’0.00’;//
每个物品的数量乘以单价以后的总价
}
其次,建立一个购物车后,可以将物品添加到购物车内:
If(isset($_SESSION[‘cart’][$id]))
$_SESSION[‘cart’][$id]++;
else
$_SESSION[‘cart’][$id]=1;
这里可能对
$_SESSION[‘cart’][$id] 有点不
清楚
~
,我当时也没弄清楚,这个我们在前面已经定义了
$_SESSION[‘cart’]=array();$_SESSION[‘cart’]
这个是
个数组,然后我们要给这个数组添加元素
[$id],
比如我添加
ID
为
1的元素,这个数组就变成了如下所示:
$_SESSION[‘cart’]=array(‘1’=>1
)
如我再添加
ID为
2的
元素,这个数组就变成了如下所示:
$_SESSION[‘cart’]=array(‘1’=>1,
‘2’=>1
)
如果
id为
1的
值再次被传递过来,由于原来我们已经添加了,所以会执行
$_SESSION[‘cart’][‘1’]++;结果就变成
$_SESSION[‘cart’][‘1’]=2
到
这里,其实购物车的核心已经基本实现了,下面我们要计算物品总价格,不要小看这个,这个也是相对比较难以实现的。
$price=0.00//初始化价格为
0
,虽然
PHP不
要求初始化,但是初始化是个比较好的习惯
foreach( $_SESSION['cart'] as $id=>$qty)
{
$query=”select price from wupin where id=’$id’”;
$result=$db->query($query)
if($result)
{
$item=$result->fetch_object();
$item_price=$item->price;
$price+=$price*$qty;
}
return $price;
}
这
个计算总价格的代码我们可以定义为一个函数,比如定义为
function calculate_price(),
进行调
用就可以了,不调用也可以
然
后要查找物品总的数量,这个函数简单
function calculate_items()
Function
calculate_item($cart)//$cart 是调用
$_SESSION[‘cart’]的传值
{
$items=0;
if (is_array($cart))
$tiems=array_sum($cart);//
这个函数是统计所有元素的值
return $items;
}
购物车思路分析
最新推荐文章于 2022-07-14 16:04:27 发布