php 购物车实例(申精)

购物车代码的实现, 代码如下,/,相当于每个车的身份证号,//购物车session的产生代码,db存购物车数据

<?php
//购物车session的产生代码
if(! $session && ! $scid) {
 /*
 session用来差别每贰个购物车,约等于每种车的居民身份证号;
 scid只用来标记二个购物车id号,能够用作是每一种车的名字;
 当该购物车的id和session值两个都不设有的时候,就发生三个新购物车
 */
 $session = md5(uniqid(rand()));
 /*
 爆发贰个独一的购物车session号
 rand()头阵生个随机数,uniqid()再在该随机数的功底上发生贰个旷世的字符串,最终对该字符串进行md5
 */
 SetCookie(scid, $session, time() + 14400);
 /*
 设置该购物车cookie
 变量名:scid(不知到这里是否少了叁个 $号呢?=》勘误:scid要加“”)
 变量值: $session
 有效时间:当前时刻+14400秒(4小时内)
 关于setcookie函数的事无巨细用法,大家要么参看php手册吧~
 */
}

你恐怕感兴趣的稿子:

  • jQuery达成购物车多货色数量的加减+总价总结
  • php 购物车全体兑今世码
  • php购物车达成代码
  • js购物车实现思路及代码(个人认为不错)
  • jQuery达成投入购物车飞入动画效果
  • JQuery达成的购物车功用(能够降低大概加多商品并活动计算价格)
  • 纯jquery落成模仿天猫商城购物车付钱
  • 购物车达成的三种格局优劣点比较

if(! $session && ! $scid) {
/*
session用来分裂每多个购物车,约等于种种车的居民身份证号;
scid只用来标志二个购物车id号,能够作为是各样车的名字;
当该购物车的id和session值两者都不设一时,就发出贰个新购物车
*/
$session = md5(uniqid(rand()));
/*
爆发八个独一的购物车session号
rand()先产生个随机数,uniqid()再在该随机数的底子上发出二个旷世的字符串,最终对该字符串实行md5
*/
SetCookie(scid, $session, time() + 14400);
/*
设置该购物车cookie
变量名:scid(不知到此地是或不是少了贰个 $号呢?=》校订:scid要加“”)
变量值: $session
得力时间:当今日子+14400秒(4钟头内)
至于setcookie函数的详尽用法,我们照旧参看php手册吧~
*/
}
class Cart { //开首购物车类
function check_item( $table, $session, $product) {
/*
核实货品(表名,session,物品)
*/
$query = SELECT * FROM $table WHERE session=’ $session’ AND product=’
$product’ ;
/*
看一看’表’里该’购物车’中有未有该’产品’
即,该产品有未有曾经放入购物车
*/
$result = mysql_query( $query);
if(! $result) {
return 0;
}
/*
查询战败
*/
$numRows = mysql_num_rows( $result);
if( $numRows == 0) {
return 0;
/*
若未有找到,则再次回到0
*/
} else {
$row = mysql_fetch_object( $result);
return $row->quantity;
/*
若找到,则赶回该物品数量
这边有至关重要解释一下mysql_fetch_object函数(上边还有只怕会用到):
【mysql_fetch_object() 和 mysql_fetch_array() 类似,唯有一点区分 –
重回一个对象而不是数组。】
地方那句话摘自php手册,说得应该很清楚了吧~
粗略的说就是,取一条记下中的有些字段,应该用“->”并非像数组同样用下标
*/
}
}
function add_item( $table, $session, $product, $quantity) {
/*
增加新货物(表名,session,物品,数量)
*/
$qty = $this->check_item( $table, $session, $product);
/*
调用上面拾叁分函数,先反省该类货色有未有曾经归入车中
*/
if( $qty == 0) {
$query = INSERT INTO $table (session, product, quantity) VALUES ;
$query .= (‘ $session’, ‘ $product’, ‘ $quantity’) ;
mysql_query( $query);
/*若车中尚无,则像车中增多该物品*/
} else {
$quantity += $qty; //若有,则在原有基础上加码多少
$query = UPDATE $table SET quantity=’ $quantity’ WHERE session=’
$session’ AND ;
$query .= product=’ $product’ ;
mysql_query( $query);
/*
并修改数据库
*/
}
}
function delete_item( $table, $session, $product) {
/*
去除物品(表名,session,货品)
*/
$query = DELETE FROM $table WHERE session=’ $session’ AND product=’
$product’ ;
mysql_query( $query);
/*
删去该购物车中此类物品
*/
}
function modify_quantity( $table, $session, $product, $quantity) {
/*
修改物品数量(表名,session,货色,数量)
*/
$query = UPDATE $table SET quantity=’ $quantity’ WHERE session=’
$session’ ;
$query .= AND product=’ $product’ ;
mysql_query( $query);
/*
将该物品数量修改为参数中的值
*/
}
function clear_cart( $table, $session) {
/*
清空购物车(没什么好说)
*/
$query = DELETE FROM $table WHERE session=’ $session’ ;
mysql_query( $query);
}
function cart_total( $table, $session) {
/*
车中货品总价
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
/*
先把车中存有货色抽出
*/
if(mysql_num_rows( $result) > 0) {
while( $row = mysql_fetch_object( $result)) {
/*
假若物品数量>0个,则相继判定价格并计算
*/
$query = SELECT price FROM inventory WHERE product=’ $row->product’
;
$invResult = mysql_query( $query);
/*
从inventory(库存)表中找寻该物品的价钱
*/
$row_price = mysql_fetch_object( $invResult);
$total += ( $row_price->price * $row->quantity);
/*
总价 += 该货品价格 * 该物品数量
( 大家应该能看明白吧 )
*/
}
}
return $total; //重返总价钱
}
function display_contents( $table, $session) {
/*
赢得有关车中全数货物的详细消息
*/
$count = 0;
/*
货色数量计数
细心,该变量不仅为了对货物数量进行总计,更首要的是,它将用作再次来到值数组中的下标,用来分别每三个货品!
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ORDER BY id ;
$result = mysql_query( $query);
/*
先抽取车中存有货物
*/
while( $row = mysql_fetch_object( $result)) {
/*
个别对每二个货色进行取详细消息
*/
$query = SELECT * FROM inventory WHERE product=’ $row->product’ ;
$result_inv = mysql_query( $query);
/*
从inventory(仓库储存)表中检索该货品的相关音信
*/
$row_inventory = mysql_fetch_object( $result_inv);
$contents[product][ $count] = $row_inventory->product;
$contents[price][ $count] = $row_inventory->price;
$contents[quantity][ $count] = $row->quantity;
$contents[total][ $count] = ( $row_inventory->price *
$row->quantity);
$contents[description][ $count] = $row_inventory->description;
/*
把装有关于该物品的详细音讯放入 $contents数组
$contents是一个二维数组
先是组下标是分别种种物品各类差异的音讯(如货色名,价钱,数量等等)
其次组下标是分别分裂的货色(那便是眼下定义的 $count变量的功能)
*/
$count++; //货色数量加一(即下三个物品)
}
$total = $this->cart_total( $table, $session);
$contents[final] = $total;
/*
再者调用上边十三分cart_total函数,总结下总价钱
并放入 $contents数组中
*/
return $contents;
/*
将该数组再次回到
*/
}
function num_items( $table, $session) {
/*
回到货色连串总量(也正是说,多少个同样的东西算一种 好疑似废话- -!)
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
$num_rows = mysql_num_rows( $result);
return $num_rows;
/*
收取车中负有货物,获取该操作影响的数据库行数,即货物总量(没什么好说的)
*/
}
function quant_items( $table, $session) {
/*
回去全体货物总量(也正是说,四个同样的事物也算多个货色 – -#)
*/
$quant = 0;// 货色总的数量
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
while( $row = mysql_fetch_object( $result)) {
/*
把每个物品每一个抽出
*/
$quant += $row->quantity; //该货色数量加到总的数量里去
}
return $quant; //重临总的数量
}
}

简简单单轻易明白。cookie存购物车ID,db存购物车多少。
//购物车session的发出代码
if(! $session && ! $scid) {
/*
session用来区分每二个购物车,相当于各类车的身份ID号;
scid只用来标志贰个购物车id号,能够视作是各类车的名字;
当该购物车的id和session值两个都不设临时,就生出三个新购物车
*/
$session = md5(uniqid(rand()));
/*
发出贰个独一的购物车session号
rand()首发生个随机数,uniqid()再在该随机数的基本功上发出三个无比的字符串,最后对该字符串进行md5
*/
SetCookie(scid, $session, time() + 14400);
/*
安装该购物车cookie
变量名:scid(不知到那边是否少了二个 $号呢?=》改良:scid要加“”)
变量值: $session
实用时间:当前时刻+14400秒(4钟头内)
关于setcookie函数的详实用法,大家依旧参看php手册吧~
*/
}
class Cart { //发轫购物车类
function check_item( $table, $session, $product) {
/*
检查物品(表名,session,货物)
*/
$query = SELECT * FROM $table WHERE session=’ $session’ AND product=’
$product’ ;
/*
看一看’表’里该’购物车’中有未有该’产品’
即,该产品有未有一度放入购物车
*/
$result = mysql_query( $query);
if(! $result) {
return 0;
}
/*
查询退步
*/
$numRows = mysql_num_rows( $result);
if( $numRows == 0) {
return 0;
/*
若没有找到,则再次来到0
*/
} else {
$row = mysql_fetch_object( $result);
return $row->quantity;
/*
若找到,则赶回该物品数量
此处有不能缺少解释一下mysql_fetch_object函数(上边还有或然会用到):
【mysql_fetch_object() 和 mysql_fetch_array() 类似,唯有少数界别 –
再次回到三个对象并不是数组。】
地点那句话摘自php手册,说得应该很通晓了吧~
一言以蔽之的说便是,取一条记下中的有些字段,应该用“->”并非像数组同样用下标
*/
}
}
function add_item( $table, $session, $product, $quantity) {
/*
加多新物品(表名,session,货物,数量)
*/
$qty = $this->check_item( $table, $session, $product);
/*
调用上边拾壹分函数,先检查该类货品有未有已经放入车中
*/
if( $qty == 0) {
$query = INSERT INTO $table (session, product, quantity) VALUES ;
$query .= (‘ $session’, ‘ $product’, ‘ $quantity’) ;
mysql_query( $query);
/*若车中未有,则像车中增多该货色*/
} else {
$quantity += $qty; //若有,则在原有基础上扩展数量
$query = UPDATE $table SET quantity=’ $quantity’ WHERE session=’
$session’ AND ;
$query .= product=’ $product’ ;
mysql_query( $query);
/*
并修改数据库
*/
}
}
function delete_item( $table, $session, $product) {
/*
删除货色(表名,session,物品)
*/
$query = DELETE FROM $table WHERE session=’ $session’ AND product=’
$product’ ;
mysql_query( $query);
/*
除去该购物车中此类货品
*/
}
function modify_quantity( $table, $session, $product, $quantity) {
/*
修改货物数量(表名,session,货品,数量)
*/
$query = UPDATE $table SET quantity=’ $quantity’ WHERE session=’
$session’ ;
$query .= AND product=’ $product’ ;
mysql_query( $query);
/*
将该货物数量修改为参数中的值
*/
}
function clear_cart( $table, $session) {
/*
清空购物车(没什么好说)
*/
$query = DELETE FROM $table WHERE session=’ $session’ ;
mysql_query( $query);
}
function cart_total( $table, $session) {
/*
车中货色总价
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
/*
先把车中具有货色收取
*/
if(mysql_num_rows( $result) > 0) {
while( $row = mysql_fetch_object( $result)) {
/*
假如物品数量>0个,则相继决断价格并图谋
*/
$query = SELECT price FROM inventory WHERE product=’ $row->product’
;
$invResult = mysql_query( $query);
/*
从inventory(仓库储存)表中追寻该货色的价格
*/
$row_price = mysql_fetch_object( $invResult);
$total += ( $row_price->price * $row->quantity);
/*
总价 += 该货物价格 * 该物品数量
( 我们应该能看明白啊:) )
*/
}
}
return $total; //再次回到总价钱
}
function display_contents( $table, $session) {
/*
得到有关车中具备物品的详细新闻
*/
$count = 0;
/*
货品数量计数
注意,该变量不独有为了对货色数量进行总计,更珍视的是,它将作为重回值数组中的下标,用来区分每二个物料!
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ORDER BY id ;
$result = mysql_query( $query);
/*
先抽出车中具有物品
*/
while( $row = mysql_fetch_object( $result)) {
/*
分别对每二个货物实行取详细消息
*/
$query = SELECT * FROM inventory WHERE product=’ $row->product’ ;
$result_inv = mysql_query( $query);
/*
从inventory(仓库储存)表中探索该货物的连带音讯
*/
$row_inventory = mysql_fetch_object( $result_inv);
$contents[product][ $count] = $row_inventory->product;
$contents[price][ $count] = $row_inventory->price;
$contents[quantity][ $count] = $row->quantity;
$contents[total][ $count] = ( $row_inventory->price *
$row->quantity);
$contents[description][ $count] = $row_inventory->description;
/*
把全数关于该物品的详细新闻放入 $contents数组
$contents是三个二维数组
第一组下标是分别各种物品各类区别的新闻(如货色名,价钱,数量等等)
其次组下标是分别分化的物料(那正是前边定义的 $count变量的效劳)
*/
$count++; //物品数量加一(即下贰个物料)
}
$total = $this->cart_total( $table, $session);
$contents[final] = $total;
/*
再正是调用上边拾叁分cart_total函数,总括下总价钱
并放入 $contents数组中
*/
return $contents;
/*
将该数组再次来到
*/
}
function num_items( $table, $session) {
/*
回去物品连串总数(约等于说,八个同样的事物算一种 好疑似废话- -!)
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
$num_rows = mysql_num_rows( $result);
return $num_rows;
/*
抽出车中持有货品,获取该操作影响的数据库行数,即货物总量(没什么好说的)
*/
}
function quant_items( $table, $session) {
/*
回去全体货色总的数量(也便是说,几个一律的东西也算五个物品 – -#)
*/
$quant = 0;// 物品总的数量
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
while( $row = mysql_fetch_object( $result)) {
/*
把各类物品每一个抽出
*/
$quant += $row->quantity; //该货物数量加到总数里去
}
return $quant; //重回总数
}
}

 代码如下

//购物车session的发生代码
if(! $session && ! $scid) {
/*
session用来分别每一个购物车,相当于每一个车的居民身份证号;
scid只用来标志二个购物车id号,能够作为是每种车的名字;
当该购物车的id和session值两个都荒诞不经时,就发出二个新购物车
*/
$session = md5(uniqid(rand()));
/*
爆发多少个唯一的购物车session号
rand()首发生个随机数,uniqid()再在该随机数的根基上发出一个无可比拟的字符串,最终对该字符串进行md5
*/
SetCookie(scid, $session, time() + 14400);
/*
安装该购物车cookie
变量名:scid(不知到此处是还是不是少了多少个 $号呢?=》勘误:scid要加“”)
变量值: $session
有效时间:当前时光+14400秒(4时辰内)
关于setcookie函数的事无巨细用法,大家要么参看php手册吧~
*/
}
class Cart { //开首购物车类
function check_item( $table, $session, $product) {
/*
查实货品(表名,session,货品)
*/
$query = SELECT * FROM $table WHERE session=’ $session’ AND product=’
$product’ ;
/*
看一看’表’里该’购物车’中有没有该’产品’
即,该产品有未有一度归入购物车
*/
$result = mysql_query( $query);
if(! $result) {
return 0;
}
/*
询问退步
*/
$numRows = mysql_num_rows( $result);
if( $numRows == 0) {
return 0;
/*
若未有找到,则再次来到0
*/
} else {
$row = mysql_fetch_object( $result);
return $row->quantity;
/*
若找到,则赶回该物品数量
那边有须要解释一下mysql_fetch_object函数(上边还会用到):
【mysql_fetch_object() 和 mysql_fetch_array() 类似,独有好几分歧 –
重回一个指标并不是数组。】
下面那句话摘自php手册,说得应该很明亮了啊~
归纳的说正是,取一条记下中的有些字段,应该用“->”并不是像数组一样用下标
*/
}
}
function add_item( $table, $session, $product, $quantity) {
/*
增加新货物(表名,session,货物,数量)
*/
$qty = $this->check_item( $table, $session, $product);
/*
调用下面十一分函数,先检查该类物品有未有一度归入车中
*/
if( $qty == 0) {
$query = INSERT INTO $table (session, product, quantity) VALUES ;
$query .= (‘ $session’, ‘ $product’, ‘ $quantity’) ;
mysql_query( $query);
/*若车中从不,则像车中加多该货品*/
} else {
$quantity += $qty; //若有,则在原始基础上平添数据
$query = UPDATE $table SET quantity=’ $quantity’ WHERE session=’
$session’ AND ;
$query .= product=’ $product’ ;
mysql_query( $query);
/*
并修改数据库
*/
}
}
function delete_item( $table, $session, $product) {
/*
除去物品(表名,session,货品)
*/
$query = DELETE FROM $table WHERE session=’ $session’ AND product=’
$product’ ;
mysql_query( $query);
/*
删除该购物车中此类货色
*/
}
function modify_quantity( $table, $session, $product, $quantity) {
/*
修改物品数量(表名,session,物品,数量)
*/
$query = UPDATE $table SET quantity=’ $quantity’ WHERE session=’
$session’ ;
$query .= AND product=’ $product’ ;
mysql_query( $query);
/*
将该货物数量修改为参数中的值
*/
}
function clear_cart( $table, $session) {
/*
清空购物车(没什么好说)
*/
$query = DELETE FROM $table WHERE session=’ $session’ ;
mysql_query( $query);
}
function cart_total( $table, $session) {
/*
车中物品总价
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
/*
先把车中有着货品抽出
*/
if(mysql_num_rows( $result) > 0) {
while( $row = mysql_fetch_object( $result)) {
/*
假使货品数量>0个,则相继推断价格并企图
*/
$query = SELECT price FROM inventory WHERE product=’ $row->product’
;
$invResult = mysql_query( $query);
/*
从inventory(仓库储存)表中搜求该物品的标价
*/
$row_price = mysql_fetch_object( $invResult);
$total += ( $row_price->price * $row->quantity);
/*
总价 += 该货物价格 * 该货品数量
( 大家应该能看理解啊:) )
*/
}
}
return $total; //重返总价钱
}
function display_contents( $table, $session) {
/*
获取有关车中兼有货品的详细音讯
*/
$count = 0;
/*
物品数量计数
在意,该变量不止为了对货物数量实行计算,更要紧的是,它将作为重临值数组中的下标,用来区分每二个物料!
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ORDER BY id ;
$result = mysql_query( $query);
/*
先收取车中有着物品
*/
while( $row = mysql_fetch_object( $result)) {
/*
各自对每贰个物料举办取详细音讯
*/
$query = SELECT * FROM inventory WHERE product=’ $row->product’ ;
$result_inv = mysql_query( $query);
/*
从inventory(库存)表中搜索该货色的相干音讯
*/
$row_inventory = mysql_fetch_object( $result_inv);
$contents[product][ $count] = $row_inventory->product;
$contents[price][ $count] = $row_inventory->price;
$contents[quantity][ $count] = $row->quantity;
$contents[total][ $count] = ( $row_inventory->price *
$row->quantity);
$contents[description][ $count] = $row_inventory->description;
/*
把富有有关该货品的详细新闻归入 $contents数组
$contents是三个二维数组
率先组下标是分别每种物品各种差别的音讯(如货物名,价钱,数量等等)
其次组下标是分别不一致的物品(那正是前方定义的 $count变量的成效)
*/
$count++; //物品数量加一(即下一个物料)
}
$total = $this->cart_total( $table, $session);
$contents[final] = $total;
/*
还要调用上边拾壹分cart_total函数,总计下总价钱
并放入 $contents数组中
*/
return $contents;
/*
将该数组再次回到
*/
}
function num_items( $table, $session) {
/*
归来物品连串总量(也正是说,五个一律的事物算一种 好像是废话- -!)
*/
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
$num_rows = mysql_num_rows( $result);
return $num_rows;
/*
抽取车中具有物品,获取该操作影响的数据库行数,即物品总量(没什么好说的)
*/
}
function quant_items( $table, $session) {
/*
回去全部货品总的数量(也等于说,七个一律的东西也算两个物品 – -#)
*/
$quant = 0;// 货物总数
$query = SELECT * FROM $table WHERE session=’ $session’ ;
$result = mysql_query( $query);
while( $row = mysql_fetch_object( $result)) {
/*
把每一种物品每种抽出
*/
$quant += $row->quantity; //该货色数量加到总数里去
}
return $quant; //重回总数
}
}

你可能感兴趣的稿子:

  • php 购物车全体兑当代码
  • php购物车实当代码
  • php 购物车的例证
  • php网上超级市场购物车设计代码分享
  • 深切PHP购物内衣模特块效用分析(函数讲明,附源码)
  • php达成购物车功效(上)
  • php利用cookies实现购物车的秘技
  • php购物车完成格局
  • PHP达成的比较完善的购物车类
  • PHP session达成购物车功用

下边是有关购物车的开始和结果