session讲解(二)——商城购物车练习
网上商城中“添加商品到购物车”是主要功能之一,所添加的商品都存到了session中,主要以二维数组的形式存储在session中,在这里我们将以买水果为例
第一:整个水果商品列表
<body>
<h1>水果列表</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>水果名称</td>
<td>水果价格</td>
<td>水果产地</td>
<td>水果库存</td>
<td>操作</td>
</tr>
<?php
include("../DBDA.class.php");
$db=new DBDA(); $sql="select * from fruit"; $attr=$db->Query($sql); foreach($attr as $v)
{
echo "<tr>
<td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td><a href='addgwc.php?ids=$v[0]'>加入购物车</a></td>
</tr>";
} ?>
</table>
<a href="gouwuche.php">查看购物车</a>
</body>

第二:点击“加入购物车时”,后台运行的代码(重要)
<?php
session_start(); $ids = $_GET["ids"]; //如果第一次点击
if(empty($_SESSION["sg"]))
{
$attr = array(array($ids,1));
$_SESSION["sg"] = $attr;
}
else
{
//第n次点击,n!=1
$attr = $_SESSION["sg"]; //判断该水果师是否已经存在
if(iscunzai($ids)) //该水果存在
{
foreach($attr as $k=>$v)
{
if($v[0]==$ids)
{
$attr[$k][1] = $v[1]+1;
}
} $_SESSION["sg"] = $attr;
}
else //该水果不存在
{
$arr = array($ids,1);
array_push($attr,$arr); $_SESSION["sg"] = $attr;
} } //判断该水果师是否已经存在,使用到的函数iscunzai()
function iscunzai($c)
{
$attr = $_SESSION["sg"]; $b = false; foreach($attr as $v)
{
$b = $b || in_array($c,$v);
} return $b;
} header("location:showlist.php");
第三:查看“购物车列表”
<body>
<h1>购物车列表</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>水果名称</td>
<td>水果价格</td>
<td>数量</td>
</tr>
<?php
session_start(); include("../DBDA.class.php");
$db = new DBDA(); $attr = $_SESSION["sg"]; foreach($attr as $v)
{
$sql = "select Name,Price from fruit where Ids='{$v[0]}'"; $arr = $db->Query($sql); echo "<tr>
<td>{$arr[0][0]}</td>
<td>{$arr[0][1]}</td>
<td>{$v[1]}</td>
</tr>";
} ?>
</table>
<a href="showlist.php">水果列表</a>
</body>

session讲解(二)——商城购物车练习的更多相关文章
- 使用session技术来实现网上商城购物车的功能
首先.简单的了解session和cookie的区别: 一.session和cookie的区别: session是把用户的首写到用户独占的session中(服务器端) cookie是把用户的数据写给用户 ...
- [转]用 Jsp 的 Session 机制编写的购物车程序
一.构建的商品类 //写一个Goods类,并定义商品的各个属性,返回商品属性的方法,以及商品对象进行比较的方法//Goods.java package com.viita.Shop; public c ...
- 3_python之路之商城购物车
python之路之商城购物车 1.程序说明:Readme.txt 1.程序文件:storeapp_new.py userinfo.py 2.程序文件说明:storeapp_new.py-主程序 use ...
- Vue node.js商城-购物车模块
一.渲染购物车列表页面 新建src/views/Cart.vue获取cartList购物车列表数据就可以在页面中渲染出该用户的购物车列表数据 data(){ return { car ...
- Mvp快速搭建商城购物车模块
代码地址如下:http://www.demodashi.com/demo/12834.html 前言: 说到MVP的时候其实大家都不陌生,但是涉及到实际项目中使用,还是有些无从下手.因此这里小编带着大 ...
- Session小案例-----简单购物车的使用
Session小案例-----简单购物车的使用 同上篇一样,这里的处理请求和页面显示相同用的都是servlet. 功能实现例如以下: 1,显示站点的全部商品 2.用户点击购买后,可以记住用户选择的商品 ...
- 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
基于vue2.0打造移动商城页面实践 地址:https://www.jianshu.com/p/2129bc4d40e9 vue实现商城购物车功能 地址:http://www.jb51.net/art ...
- 【Tomcat】JSP使用Session、Cookie实现购物车
购物界面shop.jsp 初始页面 添加商品后,在session中设置属性,重定向回到shop.jsp,然后根据session的内容显示结果 Cookie设置setMaxAge可以延长session的 ...
- 风炫安全web安全学习第三十七节课 15种上传漏洞讲解(二)
风炫安全web安全学习第三十七节课 15种上传漏洞讲解(二) 05后缀名黑名单校验之上传.htaccess绕过 还是使用黑名单,禁止上传所有web容器能解析的脚本文件的后缀 $is_upload = ...
随机推荐
- 设计模式:建造者模式(Builder)
定 义:将一个复杂对象的构建与它的表示分离,使得同一构建过程可以创建不同的表示. 结构图: 产品类: class Product { //部件集合 List<string> parts ...
- Linux-modules software
简介 这里指的modules不是linux内核相关的module,只是用于软件多版本控制的一个开源软件包,比如说系统同时有neo4j的不同版本,使用modules软件就可以使得在需要的时候选择相应的软 ...
- sp_rename
sp_rename 在当前数据库中更改用户创建对象的名称. 此对象可以是表.索引.列.别名数据类型或 Microsoft .NET Framework 公共语言运行时 (CLR) 用户定义类型. 更改 ...
- iOS面试题 02
在面试的时候,面试官问我,“你对内存管理了解的多吗?” 我忘了当时是怎么回答的了,但是,肯定是一时没想起来怎么回答. 1.谁创建谁释放 2.autoreleasepool 3.retain,copy, ...
- 安装Sql server 2008时出现sql server 2005 express tools failed 怎么办?
提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 SQL Server 2005 Express 工具.若 ...
- line-block代替float布局;
line-block代替float布局: 我们先看看float的一些特性(特征) 当我们改变浏览器的大小会出现这样的效果: 或则这样: 有时候,我们希望,以第一排最高的元素为换行基准时,我们就可以使用 ...
- C++ version the delaunay triangulation
https://github.com/Bl4ckb0ne/delaunay-triangulation
- saltstack之(四)远程执行及常用模块
前几篇文章已经完成了saltstack的安装.认证,从这篇文章开始学习使用saltstack的远程执行. 1.salt远程执行命令详解Usage: salt [options] '<target ...
- Buffer too small
在项目中用到了CString,后来发现在Format的时候会报Buffer too small的错误,在网上查资料发现时这样的 CString output ; int size = m_NicInf ...
- Could not find class XXX referenced from method XXX.<YYY>
Since some ADT-Version you have to set which libraries / projects should be exported too. Project-Pr ...