购物车思路分析

如果看了我这个代码还不会购物车,那我就要去自杀了~
购 物车主要是利用 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;
}

你可能感兴趣的:(PHP,object,function,session,query)