求 asp 购物车 源码 好心人帮帮忙啊

求 asp 购物车 源码 好心人帮帮忙啊,第1张

在线购物已经变得很平常了,而在使用购物车的时候,用户期望在其身上能够获得(足够的)灵活性。看看你能够如何把ASP和XML结合起来提供所用户需要的功能。

创建虚拟购物车的方法从来都不是单一的。最近,我碰到一个机会重新编写了一个经典的ASP购物车,让它成为一个拥有与原来类似的外观和感觉,但是更加灵活和更加快速的购物车。我决定利用XML,并开发一个跨浏览器的解决方案。现在让我来告诉你我自己碰到的一些问题,以及我是如何改进原有设计的。

原来的购物车

由于原来的购物车是针对特定的一组客户的,所以它更多地依赖于对用户的培训而非易用性。除了完全清空购物车,没有其他的机制用来对(所购的)内容进行更改。如果你往购物车里放入了错误的东西或者错误的数量,你不得不从头开始才能够更正这一错误。

而不为人知的是,原来的购物车再也无法变得更好。有限数量的行被显示出来,而客户会一页一页地翻阅购物车里的内容。这种方法的问题是,所有的东西都被保存在一个以ASP会话ID为基础的表格里。当客户浏览购物车内容的时候,就会进行一次查询。此外,如果会话超时,购物车的内容将会一直保留在表格里,直到有人手动删除它。

新的方法

我不想重复以前的错误,所以新的购物车将会基于XML会话而不会基于表格。这种方法有多个好处。首先,整个购物车以XML数据岛(Data Island)的形式保存在客户端上,如下面列表A所示。在进行简单浏览的时候,这就不再需要对表格进行查询了。但是用到了MozillaDSO()和xmlPage()函数。

内容比较多,自己看下参考资料。

我也要弄一个这种购物车,

我去写个,贴出来,【嘿嘿,今天上午新写的】。

我懒得新建数据库,用的是我的数据库。

你按照我的改一下就能用了

本人水平有限,高手请指正。

你,大,爷的,虽然不咋地,保证能用

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

经过调试,

//$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)

}

// d出提示

function alter($Str,$Url)

{

echo "<Script language='JavaScript'>alert('".$Str."')</Script>"

echo "<meta http-equiv=refresh content=0URL=".$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 product 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`)

)

product 里面用的ID CLASS1是

`ID` int(6) NOT NULL auto_increment,

`Class1` varchar(20) NOT NULL,

`Price` int(6) NOT NULL,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9619746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存