PHP购物车用法之更新购物车数量

表单部分:

 代码如下 复制代码

  <form action="?action=edit_num" method="post" name="car<?php $c_rs['id'];?>" id="car<?php $c_rs['id'];?>">

<input name="suliang[<?php echo $c_rs['sp_id'];?>]" type="text" id="suliang[<?php echo $c_rs['sp_id'];?>]" value="<?php echo $c_rs['suliang'];?>"/>

<input type="submit" name="button" id="button" value="更新购物车" />

</form>

PHP 处理部分:

 

 代码如下 复制代码

<?php

require 'config.inc.php';

require 'checklogin.php';

$username = $_SESSION['username'];

$action = $_GET['action'];

switch ($action) {

case "edit_num":

$arr = $arr = $_POST['suliang'];

foreach($arr as $key=>$value){

$sqlgx = "update `cartemp` set suliang='$value' where username='".$username."' and flag=0 and sp_id='".$key."'";

mysql_query($sqlgx, $conn);

echo "<script>location.href='shopcat.php'</script>";

}

break;

case "null":

$null_sql = "delete from `cartemp` where username='$username' and flag=0 ";

mysql_query($null_sql, $conn);

echo "<script>location.href='shopcat.php'</script>";

break;

case "del":

$id = $_GET['id'];

$del_sql = "delete from `cartemp` where id=$id";

mysql_query($del_sql, $conn);

echo "<script>location.href='shopcat.php'</script>";

break;

}

?>

上面全部使用了数据库来操作,下面来个完全的类

 代码如下 复制代码

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; //返回总量
}
}

时间: 2024-09-20 21:47:53

PHP购物车用法之更新购物车数量的相关文章

PHP更新购物车数量(表单部分/PHP处理部分)_php技巧

表单部分: 复制代码 代码如下: <form action="?action=edit_num" method="post" name="car<?php $c_rs['id'];?>" id="car<?php $c_rs['id'];?>"> <input name="suliang[<?php echo $c_rs['sp_id'];?>]" ty

ASP.NET MVC Music Store教程(8):购物车和AJAX更新

转自 http://firechun.blog.163.com/blog/static/3180452220110314454425/ 我们允许用户在没注册的情况下把唱片放进他们的购物车,但是当他们要结算时就必须注册为会员.购物和结算将使用两个不同的控制 器:ShoppingCartController允许匿名用户把商品放进购物车,CheckoutController则处理结算过程.这一章我们从购 物车开始,下一章我们创建结算. 添加Cart.Order和OrderDetails模型类 购物和结

Android实现仿淘宝购物车增加和减少商品数量功能demo示例_Android

本文实例讲述了Android实现仿淘宝购物车增加和减少商品数量功能.分享给大家供大家参考,具体如下: 在前面一篇<Android实现的仿淘宝购物车demo示例>中,小编简单的介绍了如何使用listview来实现购物车,但是仅仅是简单的实现了列表的功能,随之而来一个新的问题,买商品的时候,我们可能不止想买一件商品,想买多个,或许有因为某种原因点错了,本来想买一件来着,小手不小心抖了一下,把数量错点成了三个,这个时候就涉及到一个新的功能,那就是增加和减少商品的数量,今天这篇博文,小编就来和小伙伴们

数量改变-实现购物车功能中,商品数量增减和选择结算商品时的问题

问题描述 实现购物车功能中,商品数量增减和选择结算商品时的问题 如图,现在购物车的商品增减已实现,可是数量改变但界面上的显示仍是之前的数字,在适配器中写了点击事件,也在点击之后调用了notifyDataSetChanged();方法,仍不起作用: 选择商品,下面金额发生改变,可是再点击总金额应减少,可是我做的第一次点击增加,第二次的时候应该减少金额,当仍继续增加,不知道有人遇到过吗?试过多次,已经没思路了 解决方案 帖子被盖在下面了,你再多发一次,会有大神看见的! 解决方案二: 这个是js问题

SSH框架网上商城项目第28战之使用Ajax技术局部更新商品数量和总价_java

之前,把项目部署了一下,玩了玩,今天完善了一下购物车中修改商品数量就能局部更新相应的总价的功能,大家都知道这得用Ajax实现,我之前也没学Ajax,刚好借助这个小功能,去简单学习一下Ajax的知识. 1. 问题的分析 先看一下页面中的情况: 功能如上,在没有Ajax之前,一般都是根据用户修改的值去找Action,然后返回新的jsp页面重新加载整个页面,完成数字的更新.但是有了Ajax技术后,我们可以利用Ajax技术局部刷新要改变的地方,而不是重新加载整个页面.首先看一下上图对应的jsp部分的代码

android开发 listview-Android如何去实现淘宝购物车?主要是购物车里面的商品要有商店那一栏!

问题描述 Android如何去实现淘宝购物车?主要是购物车里面的商品要有商店那一栏! 如图,这个要用什么样的布局?开始的时候时候,我用线性布局做容器,动态加载商品的listview,商店名也用listview的addhead...那个属性加,在listview上加个头布局!但是这个行不通,显示出来后滑动时出问题了!考虑总expandlistview,但是它里面原有布局的下拉怎么去掉,怎么让他一直展开,等等,,全选,单选又怎么去实现!搞一天了!实在想不明白,求高手指点!开发 listview-An

php-加入购物车三分钟清除购物车的内容

问题描述 加入购物车三分钟清除购物车的内容 加入购物车三分钟清除购物车的内容加入购物车三分钟清除购物车的内容加入购物车三分钟清除购物车的内容PHP 解决方案 你可以单独建立一个购物车的表,在用户添加进购物车的同时启动定时任务

magento -- 推荐插件 --Ajax更新购物车数量 --Ajax Shopping Cart Quantity Update

名称:   Ajax Shopping Cart Quantity Update Extension Key:magento-community/SK_CartUpdate网址:    http://www.magentocommerce.com/magento-connect/scandiweb_com/extension/7238/sk_cartupdate介绍:    可以以Ajax的方式修改购物车里的商品数量,应该是很多人想要的功能

不同类型网站内容更新的数量和频率也不一样

网站的内容更新对网站整体权重的提升取到重要作用,每天定时定量的发布文章,有利于搜索引擎的收录,影响网站收录的要求除了网站结构因素外,文章的质量和更新的频率也占到很大的一部分,很多站长都是每天选择一个充裕的时间来更新自己的网站,为的就是迎合搜索引擎的"规律". 上海网站制作协策网络觉得内容的更新未必每个网站都是一样,都需要每天及时去更新,站点的不同,我们更新的手段和时间也是有所区别的,如新站的更新最好是能定时定量的去做,而且有原创的高质量文章那就最好,新站我觉得最难哄,有了权重做起来就轻