当前位置:  编程技术>php
本页文章导读:
    ▪php网上商城购物车代码一例      一个包含促销活动的购物车,用到了PHP的zend framework框架。 购物车的数据库设计: 1. id 2. goods_id 商品ID 3. session_id 购物车ID 4. goods_sn 商品编码 5. goods_name 商品名称 6. shop_price 商品商城售价.........
    ▪php 购物车完整实现代码      1、商品展示页面   代码示例: <table width="255"  border="0" cellspacing="0" cellpadding="0"> <tr> <td width="130" rowspan="6"><div align="center"> <?php         if(trim($info[tupian]==""))      {.........
    ▪php 购物车功能实现代码(入门例子)      1、文件 car.php 显示所有商品分类   代码示例: <?php //商品分类页   session_start();//开启session环境    //判断该用户是否点击过“放入购物车”按钮    if(isset()($_POST['cart'])){   //循环方式.........

[1]php网上商城购物车代码一例
    来源: 互联网  发布时间: 2013-12-24

一个包含促销活动的购物车,用到了PHP的zend framework框架。

购物车的数据库设计:
1. id
2. goods_id 商品ID
3. session_id 购物车ID
4. goods_sn 商品编码
5. goods_name 商品名称
6. shop_price 商品商城售价
7. goods_price 商品真实售价(与shop_price的区别在于,当打折的时候,shop_price是打折之前商品的售价,而goods_price是打折之后的)
8. goods_number 数量
9. weight 商品重量
10. goods_attr 商品属性(如颜色,尺码)
11. promote_code 促销编码(为商品促销,做的策略模式识别码)
12. is_promote 促销ID
13. stock_id 库存ID

如果还有其他的需求,比如商品的返利积分,商品是否虚拟产品,商品是否代发货等等,可以另加标示符。

此购物车要求是在用户不登陆状态下可以把商品添加到购物车内的,所以在购物车数据库设计里面,就没有加入user_id这个字段,考虑到的是用户未登陆下也可以把商品放入购物车。
识别购物车到底是哪一位用户时,需要用到session_id,是用户对应购物车的唯一识别码。
生成这个码可以放在购物车对象Cart的构造函数里:

代码发下:
 

代码示例:
<?php
/**
* 购物车类购物方法
* @param string $cart_id 购物车ID
*/
public function __construct()
{
Zend_Session::start();
$this->_session = new Zend_Session_Namespace('ShopCart');
if(!isset()($this->_session->session_id))
{
$this->_session->session_id = md5(uniqid(mt_rand(), true));
$this->_session->info = array();
}
$this->_cart_id = $this->_session->session_id;
}
?>
 

第三点,添加一个商品到购物车。
添加一个商品到购物车,在这里,我把它想成是两个动作。
第一个动作:添加商品到购物车数据库里面。
第二个动作:查找购物车所有商品,并显示出来。
首先是第一个动作:

代码如下:
 

代码示例:
<?php
/**
* 添加商品
*/
public function goodsAddAction()
{
// 添加商品使用get请求
$goods_id = $this->_getParam('goods_id');//商品ID
$goods_spec = $this->_getParam('filter_name');//商品属性(颜色,尺码)
$goods_number = $this->_getParam('goods_number');//商品数量
$promote_name = $this->_getParam('promote_name', 'Default');//促销策略
//获取购物车实例
$cartB = $this->_getCart();
$cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name);
//添加成功,跳转到下一步,查找购物车所有商品,并显示出来。
$this->_showMessage(Bll_Context::isError() ? Bll_Context::getError() : '添加到购物篮成功!', Bll_Context::getRecirect('/orderv2'), 3);
}
?>
 

上段代码第15行:
 

$cartB->goodsAdd($goods_id, $goods_spec, $goods_number, $promote_name);
 

这就是添加商品操作函数,这里面的$promote_name是促销的一个参数。
这里只要知道是添加这个商品的基本信息,存入到php购物车数据库里即可。
其次就是第二个动作:
 

代码示例:
<?php
/**
* 购物列表
*/
public function indexAction()
{
//获取购物车实例
$cartB = $this->_getCart();
//列出购物车内所有商品
$this->view->goods_list = $cartB->goodsViewList();
//获取用于显示规则消息的规则实例列表
$this->view->tips = $cartB->goodsTipRules();
//购物车内商品总数量
$this->view->total_number = $cartB->getTotalGoodsNumber();
//获取购物车内商品总货额
$this->view->total_amount = $cartB->getTotalAmount();
}
?>
 

以上代码中,第一个和第二个动作必须是要分开的,允许不添加商品直接点购物车。
就是这些了,抛砖引玉吧,希望对大家有些许的启发,在下就满足了。


    
[2]php 购物车完整实现代码
    来源: 互联网  发布时间: 2013-12-24

1、商品展示页面
 

代码示例:
<table width="255"  border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="130" rowspan="6"><div align="center">
<?php
        if(trim($info[tupian]==""))
     {
       echo "暂无图片";
     }
     else
     {
?>
<img src="/blog_article/</php echo $info[tupian];/gt;.html" width="130" height="100" border="0">
<?php
  }
?>
</div></td>
  <td width="20" height="16">&nbsp;</td>
  <td width="113"><font color="EF9C3E">【<?php echo $info[mingcheng];?>】</font></td>
 </tr>
 <tr>
  <td height="16">&nbsp;</td>
  <td><font color="910800">【市场价:<?php echo $info[shichangjia];?>】</font></td>
 </tr>
 <tr>
  <td height="16">&nbsp;</td>
  <td><font color="DD4679">【会员价:<?php echo $info[huiyuanjia];?>】</font></td>
 </tr>
 <tr>
  <td height="16">&nbsp;</td>
  <td>【<a href="/blog_article/lookinfo/id/lt;php echo $info[id];/gt;.html">查看信息</a>】</td>
 </tr>
 <tr>
  <td height="16">&nbsp;</td>
  <td>【<a href="/blog_article/addgouwuche/id/lt;php echo $info[id];/gt;.html">放入购物车</a>】</td>
 </tr>
 <tr>
  <td height="16">&nbsp;</td>
  <td><font color="13589B">【剩余数量:
      <?php 
      if(($info[shuliang]-$info[cishu])>0)
      {
         echo ($info[shuliang]-$info[cishu]);
      }
      else
      {
         echo "已售完";
      }
      ?>】</font></td>
 </tr>
 </table>
     <?php
      }
     ?>    
</table>

2、文件addgouwuche.php
 

代码示例:
<?php
session_start();
include("conn.php");
 
if($_SESSION[username]=="")
 {
  echo "<script>alert('请先登录后购物!');history.back();</script>"; 
  exit;
 }
  $id=strval($_GET[id]);
$sql=mysql_query()("select * from shangpin where id='".$id."'",$conn); 
$info=mysql_fetch_array($sql);
if($info[shuliang]<=0)
 {
   echo "<script>alert('该商品已经售完!');history.back();</script>";
   exit;
 }
  $array=explode()("@",$_SESSION[producelist]);
  for($i=0;$i<count($array)-1;$i++)
    {
  if($array[$i]==$id)
   {
      echo "<script>alert('该商品已经在您的购物车中!');history.back();</script>";
   exit;
   }
 }
  $_SESSION[producelist]=$_SESSION[producelist].$id."@";
  $_SESSION[quatity]=$_SESSION[quatity]."1@";
  
  header("location:gouwu1.php");
?>

3、文件gouwu1.php
 

代码示例:

<?php
 session_start();
 if($_SESSION[username]=="")
  {
    echo "<script>alert('请先登录,后购物!');history.back();</script>";
 exit;
  }  
?>
<?php
 include("top.php");
?>
<table width="800" height="438" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200" height="438" valign="top" bgcolor="#E8E8E8"><div align="center">
 <?php include("left.php");?>
    </div></td>
    <td width="10" background="images/line2.gif">&nbsp;</td>
    <td width="590" valign="top"><table width="550" height="10" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table>    
      <table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
        <form name="form1" method="post" action="/blog_article/gouwu1.html">
          <tr>
 <td height="25" bgcolor="#555555"><div align="center" ><?php echo $_SESSION[username];?>的购物车</div></td>
          </tr>
          <tr>
 <td  bgcolor="#555555"><table width="500" border="0" align="center" cellpadding="0" cellspacing="1">
<?php
   session_start();
     session_register("total");
     if($_GET[qk]=="yes")
     {
        $_SESSION[producelist]="";
     $_SESSION[quatity]=""; 
     }
      $arraygwc=explode("@",$_SESSION[producelist]);
      $s=0;
      for($i=0;$i<count($arraygwc);$i++)
      {
          $s+=intval($arraygwc[$i]);
      }
     if($s==0 )
       {
       echo "<tr>";
   echo" <td height='25' colspan='6' bgcolor='#FFFFFF' align='center'>您的购物车为空!</td>";
   echo"</tr>";
    }
     else
      { 
   ?>
<tr>
  <td width="125" height="25" bgcolor="#FFFFFF"><div align="center">商品名称</div></td>
  <td width="52" bgcolor="#FFFFFF"><div align="center">数量</div></td>
  <td width="64" bgcolor="#FFFFFF"><div align="center">市场价</div></td>
  <td width="64" bgcolor="#FFFFFF"><div align="center">会员价</div></td>
  <td width="51" bgcolor="#FFFFFF"><div align="center">折扣</div></td>
  <td width="66" bgcolor="#FFFFFF"><div align="center">小计</div></td>
  <td width="71" bgcolor="#FFFFFF"><div align="center">操作</div></td>
</tr>
<?php
/**
 * 购物车 商品数量管理
 * Edit www.
*/
$total=0;
$array=explode("@",$_SESSION[producelist]);
$arrayquatity=explode("@",$_SESSION[quatity]);
    
     while(list($name,$value)=each($_POST))
        {
       for($i=0;$i<count($array)-1;$i++)
       {
         if(($array[$i])==$name)
      {
        $arrayquatity[$i]=$value;  
      }
       }       
     }

    $_SESSION[quatity]=implode("@",$arrayquatity);

    for($i=0;$i<count($array)-1;$i++)
     { 
     
       $id=$array[$i];
       $num=$arrayquatity[$i];
      
      if($id!="")
       {
       $sql=mysql_query("select * from shangpin where id='".$id."'",$conn);
       $info=mysql_fetch_array($sql);
       $total1=$num*$info[huiyuanjia];
       $total+=$total1;
       $_SESSION["total"]=$total;
   ?>
<tr>
  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $info[mingcheng];?></div></td>
  <td height="25" bgcolor="#FFFFFF"><div align="center">
      <input type="text" name="<?php echo $info[id];?>" size="2" value=<?php echo $num;?>>
  </div></td>
  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $info[shichangjia];?>元</div></td>
  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $info[huiyuanjia];?>元</div></td>
  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo @(ceil(($info[huiyuanjia]/$info[shichangjia])*100))."%";?></div></td>
  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $info[huiyuanjia]*$num."元";?></div></td>
  <td height="25" bgcolor="#FFFFFF"><div align="center"><a href="/blog_article/removegwc/id/lt;php echo $info[id]/gt;.html">移除</a></div></td>
</tr>
<?php         
         }
     }
?>
<tr>
  <td height="25" colspan="8" bgcolor="#FFFFFF"><div align="right">
      <table width="500" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="125"><div align="center">
 <input type="submit" value="更改商品数量" >
          </div></td>
          <td width="125"><div align="center"><a href="/blog_article/gouwu2.html">去收银台</a></div></td>
          <td width="125"><div align="center"><a href="/blog_article/gouwu1/qk/yes.html">清空购物车</a></div></td>
          <td width="125"><div align="left">总计:<?php echo $total;?></div></td>
        </tr>
      </table>
  </div></td>
 </tr>
 <?php
    }
   ?>
</table></td>
</tr>
</form>
    </table></td>
  </tr>
</table>

3、文件gouwu2.php
 

代码示例:
<table width="800" height="438" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200" height="438" valign="top" bgcolor="#E8E8E8"><div align="center">
 <?php include("left.php");?>
    </div></td>
    <td width="10" background="images/line2.gif">&nbsp;</td>
    <td width="590" valign="top"><table width="550" height="15" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table>
      <table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td height="25" bgcolor="#555555"><div align="center" >收货人信息</div></td>
        </tr>
        <tr>
          <td height="300" bgcolor="#555555"><table width="550" height="300" border="0" align="center" cellpadding="0" cellspacing="1">
<script language="javascript">
/**
 * 购物车 收货人信息
 * Edit www.
*/
function chkinput(form)
    {
      if(form.name.value=="")
       {
      alert("请输入收货人姓名!");
      form.name.select();
      return(false);
    
    }
    if(form.dz.value=="")
       {
      alert("请输入收货人地址!");
      form.dz.select();
      return(false);
    
    }
    if(form.yb.value=="")
       {
      alert("请输入收货人邮编!");
      form.yb.select();
      return(false);
    
    }
    if(form.tel.value=="")
       {
      alert("请输入收货人联系电话!");
      form.tel.select();
      return(false);
    
    }
    if(form.email.value=="")
       {
      alert("请输入收货人E-mail地址!");
      form.email.select();
      return(false);
    
    }
    if(form.email.value.indexOf("@")<0)
     {
        alert("收货人E-mail地址格式输入错误!");
        form.email.select();
        return(false);
     
     }
    return(true);    
    }     
     </script>
     <form name="form1" method="post" action="/blog_article/savedd.html" onSubmit="return chkinput(this)">
      <tr>
 <td width="100" height="25" bgcolor="#FFFFFF"><div align="center">收货人姓名:</div></td>
 <td width="183" bgcolor="#FFFFFF"><div align="left"><input type="text" name="name" size="25" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'"></div></td>
 <td width="86" bgcolor="#FFFFFF"><div align="center">性别:</div></td>
 <td width="176" bgcolor="#FFFFFF"><div align="left">
 <select name="***">
  <option selected value="男">男</option>
  <option value="女">女</option>
 </select>
 </div></td>
 </tr>
 <tr>
 <td height="25" bgcolor="#FFFFFF"><div align="center">详细地址:</div></td>
 <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input name="dz" type="text" id="dz" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'" size="25">
 </div></td>
 </tr>
 <tr>
 <td height="25" bgcolor="#FFFFFF"><div align="center">邮政编码:</div></td>
 <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input type="text" name="yb" size="25" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'"></div></td>
 </tr>
 <tr>
 <td height="25" bgcolor="#FFFFFF"><div align="center">联系电话:</div></td>
 <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input type="text" name="tel" size="25" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'"></div></td>
 </tr>
 <tr>
 <td height="25" bgcolor="#FFFFFF"><div align="center">电子邮箱:</div></td>
 <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input type="text" name="email" size="25" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'"></div></td>
 </tr>
 <tr>
 <td height="25" bgcolor="#FFFFFF"><div align="center">送货方式:</div></td>
 <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left">
 <select name="shff" id="shff">
  <option selected value="普通平邮">普通平邮</option>
  <option value="特快专递">特快专递</option>
  <option value="送货上门">送货上门</option>
  <option value="个人送货">个人送货</option>
  <option value="E-mail">E-mail</option>
      </select>
</div></td>
 </tr>
 <tr>
 <td height="25" bgcolor="#FFFFFF"><div align="center">支付方式:</div></td>
 <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left">
 <select name="zfff" id="zfff">
  <option selected value="建设银行汇款">建设银行汇款</option>
  <option value="交通银行汇款">交通银行汇款</option>
  <option value="邮局汇款">邮局汇款</option>
  <option value="网上支付">网上支付</option>
 </select>
 </div></td>
 </tr>
 <tr>
 <td height="100" bgcolor="#FFFFFF"><div align="center">简单留言:</div></td>
 <td height="100" colspan="3" bgcolor="#FFFFFF"><div align="left">
 <textarea name="ly" cols="60" rows="8" onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor='#e8f4ff'"></textarea>
</div></td>
 </tr>
 <tr>
 <td height="25" colspan="4" bgcolor="#FFFFFF"><div align="center"><input type="submit" value="提交订单" >
 </div></td>
 </tr>
   </form>
          </table></td>
        </tr>
      </table></td>
  </tr>
</table>
<?php
 if($_GET[dingdanhao]!="")
  {  $dd=$_GET[dingdanhao];
     session_start();
  
     $array=explode("@",$_SESSION[producelist]);
  $sum=count($array)*20+260;
    echo" <script language='javascript'>";
 echo" window.open('showdd.php?dd='+'".$dd."','newframe','top=150,left=200,width=600,height=".$sum.",menubar=no,toolbar=no,location=no,scrollbars=no,status=no ')";
 echo "</script>";
 
  }
?>

4、数据库配置文件conn.php
 

代码示例:
<?php
$conn=mysql_connect()("localhost","root","") or die("数据库服务器连接错误".mysql_error());
mysql_select_db("shop",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set character set gb2312");
mysql_query("set names gb2312");
?>

    
[3]php 购物车功能实现代码(入门例子)
    来源: 互联网  发布时间: 2013-12-24

1、文件 car.php 显示所有商品分类
 

代码示例:
<?php
//商品分类页
  session_start();//开启session环境
   //判断该用户是否点击过“放入购物车”按钮
   if(isset()($_POST['cart'])){
  //循环方式赋值
    
   foreach($_POST['cart'] as $value){
    //购物车里如果有该商品
    //条件:
    //点击过“放入购物车”---存在数组$_SESSION['cart'];
    //判断哪件商品---- 判断该商品的名称是否在数组里出现过
    //array_key_exists(下标,数组);
   if(isset($_SESSION['cart'])&& array_key_exists($value,$_SESSION['cart'])){
       $_SESSION['cart'][$value]++;
     }else{
    
   //购物车里如果没有该商品 
   $_SESSION['cart'][$value]=1;
     }
  }
  }
?>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  <title>网上商城_php购物车-www.</title>
</head>
<body>
   <h1>网上商城</h1>
    <a href="/blog_article/car1.html">日用百货</a> <br/>
    <a href="/blog_article/car2.html">家用电器</a> <br/>
    <a href="/blog_article/car3.html">文化用品</a> <br/>
    <a href="/blog_article/carlist.html">查看购物车</a>
    <a href="/blog_article/cardel.html">清空购物车</a> 
</body>
</html>

2、carlist.php  显示购物车中的商品
 

代码示例:

<?php
  //显示购物车内的商品(商品名字、商品数量)
  session_start();
 
  echo "您已经选择的商品包括:<br>";
 
  echo " <form action='/blog_article/balance.html' method='post' > ";

   //显示用户购买的商品
   //包括功能:删除该商品
   //修改商品的数量
   //Edit www.      
   //获取用户购买的信息$_SESSION,循环方式显示产品
   if(isset($_SESSION['cart'])){
    foreach(@$_SESSION['cart'] as $key=>$value){
 
    echo "<input type='checkbox' name='list[]' value='{$key}'> ";
    echo "$key &nbsp;&nbsp;&nbsp;$value&nbsp;&nbsp;";
  
    //减少一件商品
   echo "<a href='/blog_article/cardel1/list/{$key}.html'>减少一件商品</a>";
    echo "   <a href='/blog_article/cardel2/list/{$key}.html'>删除该商品 </a><br>";
    }
   }
   echo "<input type='submit' name='tijiao' value='结算'>";
   echo "<a href='cardel.php'>清空购物车</a> ";
   echo "</form>";
  echo " <a href='/blog_article/car.html'>返回首页</a>";
?>
 

 
3、文件 cardel.php 清空购物车
 

代码示例:

<?php
session_start();//开启session环境

//清空购物车
 unset($_SESSION['cart']);
 ?>
<script type="text/javascript" language="javascript">
 alert("清除成功");
 location.href="car.php";
</script>

以上代码实现了一个购物车的常见功能,显示商品分类与信息,购物车中商品的处理等。希望对大家有所帮助。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3