您的位置:

php之购物车类思路及代码(php立即购买和购物车功能)

本文目录一览:

【高分】急求用php写的购物车代码!!!!!(十万火急)如果您提供的好用还有加分!!!

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

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

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

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

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

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

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

经过调试,

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

}

// 弹出提示

function alter($Str,$Url)

{

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

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

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,

php购物车和打印订单代码怎么写

不就是几个表单页么,有啥难写的。。这里不写代码了,写写思路吧。购物车,这种东西就是说客户买的东西要放在一个表单里面,这里我们需要一个客户提交一个表单,买了什么东西,多少个,价钱如何,订单日期多少。。。把这些参数传递到订单显示页,好了,在这个页将它们显示出来。

求PHP里的TP5的购物车代码

可以参考如下代码

?php

class Cart extends Think {

//当前购物车名

public $sessionName;

//购物车总价格

public $totalPrice

public function __construct($sessionName)

{

$this-sessionName=$sessionName;

if(!isset($_SESSION[$this-sessionName]))

 {

$_SESSION[$this-sessionName]="";

  }

 }

//获取购物车的信息

public function getCart(){

    $cur_cart_array=$_SESSION[$this-sessionName];

    return $cur_cart_array;

}

//获取购物车商品清单

public function getCartList()

{

$cur_cart_array=$_SESSION[$this-sessionName];

if($cur_cart_array!="")

 {

  $mode_goods_data=M("goods_data");

  $len=count($cur_cart_array);

  for($i=0;$i$len;$i++)

  {

  $goodsid=$cur_cart_array[$i]["id"];

  $num=$cur_cart_array[$i]["num"];

   $query="select (select sfilename from goods_pic where goodsid=a.goodsid order by sno desc limit 0,1) as sfilename,b.clsname as clsname,a.goodsid as goodsid,a.goodsname as goodsname,a.Price as Price,a.Storageqty as Storageqty from goods_data a left join goods_cls b on a.Clsid=b.clsid where a.goodsid=$goodsid";

    $list=$mode_goods_data-query($query);

    $list[0]["qty"]=$num;

    $list[0]["amount"]=$num*$list[0]["Price"];

    $cartList[$i]=$list[0];

    $totalPrice+=$list[0]["amount"];

  }

  //返回商品总价格

  $this-totalPrice=$totalPrice;

    return $cartList;

 }

}

//加入购物车,购物车的商品id和购物车的商品数量

public function addcart($goods_id,$goods_num){

      $cur_cart_array=$_SESSION[$this-sessionName];

      if($cur_cart_array=="")

       {

          $cart_info[0]["id"]=$goods_id;//商品id保存到二维数组中

      $cart_info[0]["num"]=$goods_num;//商品数量保存到二维数组中

      $_SESSION[$this-sessionName]=$cart_info;

        }

        else

        {   

          //返回数组键名倒序取最大

      $ar_keys=array_keys($cur_cart_array);

           $len=count($ar_keys);

           $max_array_keyid=$ar_keys[$len-1]+1;

          //遍历当前的购物车数组

     //遍历每个商品信息数组的0值,如果键值为0且货号相同则购物车该商品已经添加

     $is_exist=$this-isexist($goods_id,$goods_num,$cur_cart_array);

         if($is_exist==false)

         {

             $cur_cart_array[$max_array_keyid]["id"] = $goods_id;

             $cur_cart_array[$max_array_keyid]["num"] = $goods_num;

             $_SESSION[$this-sessionName]=$cur_cart_array;

         }

         else

         {

          $arr_exist=explode("/",$is_exist);

          $id=$arr_exist[0];

          $num=$arr_exist[1];

          $cur_cart_array[$id]["num"]=$num;

          $_SESSION[$this-sessionName]=$cur_cart_array;

         } 

       }

}

//判断购物车是否存在相同商品

public function isexist($id,$num,$array)

{

 $isexist=false;

 foreach($array as $key1=$value)

 {

  foreach($value as $key=$arrayid)

  {

    if($key=="id"  $arrayid==$id)

    {

     $num=$value["num"]+$num;

     $isexist=$key1."/".$num;

    }

  }

 }

 return $isexist;

}

thinkphp开发使得我们比较容易的去进行了

//从购物车删除

public function delcart($goods_array_id){

         //回复序列化的数组

     $cur_goods_array=$_SESSION[$this-sessionName];

        //删除该商品在数组中的位置

     unset($cur_goods_array[$goods_array_id]);

         $_SESSION[$this-sessionName]=$cur_cart_array;

         //使数组序列化完整的保存到cookie中

}

//清空购物车

public function emptycart(){

$_SESSION[$this-sessionName]="";

}

//修改购物车货品数量   

public function update_cart($up_id,$up_num){

 //回复序列化的数组

 $cur_goods_array=$_SESSION[$this-sessionName];  

  $cur_goods_array[$up_id]["num"]=$up_num;

  $_SESSION[$this-sessionName]=$cur_cart_array;

}

}

?