




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、案例 简易网上书店之购物车设计一、概述当会员从图书显示页面选择了所购图书并填写了购书的数量后,就要把书放入购物车中。购物车就是记录存放会员暂时选定图书的数据表,对这个数据表的操作包括添加、更改、删除和查询。当把选中的图书放入购物车时,就是向数据库添加数据;当查看购物车时,就是把数据库中的数据读出来,按一定的格式显示在浏览器上;当删除不想要的图书或更改购书的数量时,就是删除或更改数据表中的数据;当重新购物时,就要清除数据表中的数据。二、系统架构对购物车的操作发生在选中图书之后。建立一个数据表记录会员选购的图书信息。当进入图书显示页面,选定了想要的图书后,要更新数据表中的数据。查看购物车,除了显示
2、数据表中与会员有关的图书信息外,还提供变更购书数量和取消不想要的图书的表单,并交给相关程序处理。在查看购物车页面也提供结算的入口。同时定单也要从确定的购物车中提取数据。因此,购物车页面应该具有以下功能:1添加购物车。2查看购物车。3修改购物车。4清除购物车。本案例的工作流程图如图1所示。Web服务器会员从显示页面请求放入购物车数据库服务器添加到购物车处理显示图书页面查看购物车页面定单结算页面修改购书信息清除购物车图1说明:1会员从图书显示页面选定图书,请求加入购物车;2处理了添加后,会员的去向可能是继续购书,那就回到显示页面,也可能想查看购物车,那就进入到查看购物车页面;3进入查看购物车页面后
3、,会员能浏览到所选图书的信息,同时还能修改购书信息,也能选择继续购书,或结账;4清除购物车是在购物结束时发生。三、系统设计1逻辑结构设计根据对系统的功能描述,可得如图2所示的系统逻辑结构图。修改购书处理updatechat.php删除选中的图书更新修改的购书数量查看购物车 Checkchat.php显示购书的信息修改购物数量或取消控制转向加入购物车页面addchat.php追加记录控制转向显示图书页面nowbook.php表单:submit定单结算buybook.php表单:submit清空购物车clear.php删除购物车中的所有图书退出购物页面图22数据库设计在MySQL数据库服务器上名为
4、bookshop数据库内建立数据表buychat ,各字段的定义和说明如下。表buychat字段类型NULL说明备注buyidInt(11)否购书序列号auto_incrementuseridchar(30)否会员登录idbookidInt(11)否书号buynumInt(11)是购买数量buypricefloat否购买价格buystatusvarchar(2)否购买状态f注:通过phpMyadmin建立,在MySQL的data文件夹中会自动创建以此数据库为名的文件夹,包含相关数据。3 界面设计添加购物车页面:addchat.php标题行继续购书(submit)查看购物车(submit)查看购
5、物车:checkchat.php标题行提示信息栏取消书名出版社价格购买数量合计表单(复选框)表单(文本框)提示语:取消某本书或修改了购书数量后,单击“修改”按钮修改(submit)还要卖(submit)结账(submit)状态提示栏:购书数量不能为0,请修改。四、编码实现1添加购物车页面:addchat.php?session_start();/创建会话$userid=$_SESSIONuserid; /使用会话变量include(sys_conf.inc); /建立与SQL数据库的连接$connection=mysql_connect($DBHOST,$DBUSER,$DBPWD) or d
6、ie(无法连接数据库!);mysql_query(set names gb2312);mysql_select_db(bookshop) or die(无法选择数据库!);$query=SELECT * FROM bookinf order by bookid;$result=mysql_query($query,$connection) or die(读取数据失败!1);$query=SELECT * FROM buychat where userid=$userid order by bookid ;$result2=mysql_query($query,$connection) or d
7、ie(读取数据失败!2);$i=1;while($row2=mysql_fetch_array($result2)$bc$ibookid=$row2bookid;$bc$ibuynum=$row2buynum;$i+;$count=1;while($row=mysql_fetch_array($result)if($bookbm$count=sel ) if($buynum$count=) $buynum$count=0;$p=0;for($j=1;$j 成功选购! -addchat.php-代码解读1)获取会话变量会员idsession_start(); 要把在登录时创建的会话变量(会员id
8、)取出,必须先创建会话;$userid=$_SESSIONuserid; 获取会话变量,将在数据库操作中使用;2)包含数据库服务器配置变量文件使用include()函数把数据库服务器配置变量文件包括在程序中。include()函数的参数是公共文件sys_conf.inc,用于设置系统使用的数据库全局变量。3)写入或修改购物车中的数据这个部分相对复杂些,主要算法是:包含数据库服务器配置数据文件连接数据库服务器设置数据库服务器处理的字符集,以处理汉字在浏览器上的显示打开数据库bookbook读取数据表bookinf中的数据赋予变量$result读取数据表buychat中指定会员的的数据并赋予变量$
9、result2依次提取字段bookid和booknum中的值依次提取数据表bookinf中记录;对被选中的记录如果没有填写数量,就设置为0;如果已经在数据表buychat中,就修改它的数量;如果不在数据表buychat中,就把相关图书信息插入在表尾;关闭数据库连接。 4)用HTML编写在浏览器上显示的添加购物车页面注意:继续购书的提交按钮表单交给newbook.php处理,而查看购物车按钮表单交给checkchat.php处理。5)这段代码中用到的SQL命令命令格式含义set names gb2312设置字符处理集为gb2312SELECT * FROM bookinf order by bo
10、okid获取数据表bookinf的所有记录SELECT * FROM buychat where userid=$userid order by bookid获取数据表bookchat中与登录会员相关的所有记录UPDATE buychat set buynum=$buynu where (bookid =$count and userid=$userid)更新数据表buychat中登录会员指定书号的购书数量INSERT INTO buychat(buynum,buyprice,userid,buystatus, bookid)VALUES ($buynu,$rowpriceyh,$userid
11、, f,$count )把登录会员当前的购书信息插入到数据表buychat中6)程序中用到的变量变量名取值含义$userid字符串记录会员ID$connection整数,标识连接数据库的句柄记录连接数据库德指针$querySQL命令记录SQL命令$result,$result2查询数据集记录执行SQL命令后的返回结果$count整数记录书号$row,$row2数组记录查询数据集中的一条记录$bc查询数据集中的值,二维数组记录查询结果数据集的值$bookbm数组记录对每本书的选购状态$buynum数组记录对每本书的选购数量$p逻辑值(0/1)0-已经记录在购物车上$i,$j整数记录查询数据集中的
12、记录指针7)程序中用到的函数函数用法含义count()参数取数组型统计数组中元素的个数mysql_connect()三个参数分别是服务器名,会员名,会员密码连接到指定的数据库服务器上,访问会员建立的数据库die()参数取字符串型返回字符串的信息,错误警报mysql_query()参数为SQL命令执行SQL命令mysql_select_db()参数为数据库名打开数据库文件mysql_fetch_array()参数为字符串以数组返回查询数据集中的记录mysql_close()参数为标识连接数据库的句柄关闭数据库文件2查看购物车:checkchat.php 查询购物车 购物车清单:以下是你所选购的图
13、书,你可以修改购买的数量或取消! 取消 书名出版社价格购买数量合计? for($j=1;$j=count($bc);$j+) echo ; echo ; echo .$bc$jbookname. ; echo .$bc$jpublisher. ; echo .$bc$jbuyprice. ; echo ; echo . $bc$jbuyprice *$bc$j buynum. ; echo ; ? 取消某本书或修改了购书数量后,单击“修改”按钮 - checkchat.php-代码解读1)获取会话变量会员idsession_start(); 要把在登录时创建的会话变量(会员id)取出,必须先创
14、建会话;$userid=$_SESSIONuserid; 获取会话变量,将在数据库操作中使用;2)写入或修改购物车中的数据这个部分程序的算法是:包含数据库服务器配置数据文件连接数据库服务器设置数据库服务器处理的字符集,以处理汉字在浏览器上的显示打开数据库bookbook读取数据表buychat中指定会员的数据并赋予变量$result读取数据表bookinft中的数据并赋予变量$result2依次提取数据集$result字段buyprice、booknum 和bookid中的值赋给数组变量$bc依次提取数据集$result2与数据集$result中字段bookid相同的记录的字段bookname
15、、publisher中的值赋给数组变量$bc如果购买数量为0,设置要求修改的信息;关闭数据库连接。3)用HTML制作查看购物车页面其中三个提交按钮对应的处理程序分别是:修改:updatechat.php,还要买:newbook.php,结账:buybook.php。在上方的提示信息行中用到了会话变量$_SESSIONuserid。4)程序中用到的SQL命令命令格式含义SELECT * FROM buychat where userid=$userid order by bookid 获取数据表buychat中当前登录会员的所有记录SELECT * FROM bookinf order by b
16、ookid获取数据表bookinf中的所有记录5)程序中用到的变量变量名取值含义$userid字符串记录会员ID$connection整数,标识连接数据库的句柄记录连接数据库德指针$querySQL命令记录SQL命令$result查询数据集记录执行SQL命令后的返回结果$count,$j整数记录书号$row数组记录查询数据集中的一条记录$bc查询数据集中的值,二维数组记录查询结果数据集的值buyid数组(表单中)记录对每本书的取消状态buynum数组(表单中)记录对每本书的选购数量$errmsgnum字符串记录购物数量为0时的提示修改信息5)程序中用到的函数函数用法含义count()参数取数组
17、型统计数组中元素的个数mysql_connect()三个参数分别是服务器名,会员名,会员密码连接到指定的数据库服务器上,访问会员建立的数据库die()参数取字符串型返回字符串的信息,错误警报mysql_query()参数为SQL命令执行SQL命令mysql_select_db()参数为数据库名打开数据库文件mysql_fetch_array()参数为字符串以数组返回查询数据集中的记录mysql_close()参数为标识连接数据库的句柄关闭数据库文件3修改购物车:updatechat.php?session_start();$userid=$_SESSIONuserid; include(sys
18、_conf.inc); /建立与SQL数据库的连接$connection=mysql_connect($DBHOST,$DBUSER,$DBPWD) or die(无法连接数据库!);mysql_query(set names gb2312);mysql_select_db(bookshop) or die(无法选择数据库!);$query=SELECT * FROM buychat where userid=$userid;$result=mysql_query($query,$connection) or die(读取数据失败!);$count=1;while($row=mysql_fet
19、ch_array($result)if($buyid$count=del)$query=DELETE FROM buychat where buyid=$count and userid=$userid;mysql_query($query,$connection) or die(删除购物车数据失败!1);if($buynum$count$rowbuynum)$query=UPDATE buychat set buynum=$buynum$count where buyid=$countand userid=$userid;mysql_query($query,$connection) or
20、die(修改购物车数据失败!2);$count+;$sql=alter TABLE buychat drop buyid;mysql_query($sql,$connection);$sql=alter TABLE buychat add buyid int auto_increment primary key;mysql_query($sql,$connection);mysql_close($connection) or die(无法断开与数据库的连接);/页面重定向echo ;echo location=checkchat.php;echo ;? -updatechat.php-代码解读
21、这段代码实现以下功能:1)获取会话变量会员idsession_start(); 要把在登录时创建的会话变量(会员id)取出,必须先创建会话;$userid=$_SESSIONuserid; 获取会话变量,将在数据库操作中使用;2)写入或修改购物车中的数据这个部分相对复杂些,主要算法是:包含数据库服务器配置数据文件连接数据库服务器设置数据库服务器处理的字符集,以处理汉字在浏览器上的显示打开数据库bookbook读取数据表buychat中指定会员的数据并赋予变量$result对于查询数据集$result中的每一条记录若被取消则从数据表buychat中删除;若输入的购买数量与数据表中bnum字段的值
22、不等则用输入的数值替代bnum字段的值;把购书序列号重新设置为从1开始的连续数字删除字段buyid添加字段buyid,其属性是整数、主键和字段增加关闭数据库连接。 页面重定向回checkchat.php这是利用JavaScript编写的。3)用HTML制作添加购物车页面注意:继续购书的提交按钮表单交给newbook.php处理,而查看购物车按钮表单交给checkchat.php处理。5)程序中用到的SQL命命令格式含义SELECT * FROM buychat where userid=$userid获取数据表buychat中当前登录会员的所有记录DELETE FROM buychat whe
23、re buyid=$count and userid=$userid删除数据表buychat中当前登录会员已经取消的图书UPDATE buychat set buynum=$buynum$count where buyid=$countand userid=$userid更新数据表buychat中当前登录会员已经修改的购书数量alter table buychat drop buyid删除数据表buychat中的字段buyidalter table buychat add buyid int auto_increment primary key添加字段buyid到数据表buychat中5)程序中用到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 便民临时摊位管理制度
- 保健场所消防管理制度
- 保利集团资金管理制度
- 建筑金属面绝热夹芯板产品质量省监督抽查实施细则
- 保安公司运维管理制度
- 保安特勤队员管理制度
- 保密单位门卫管理制度
- 保密防护设施管理制度
- 保洁服务质量管理制度
- 环保绿色课件图片
- 文史哲与艺术中的数学智慧树知到期末考试答案章节答案2024年吉林师范大学
- 信息光学智慧树知到期末考试答案章节答案2024年北京工业大学
- 《HSK标准教程1》课件
- 电大财务大数据分析编程作业3
- 诺贝尔生理学或医学奖史话智慧树知到期末考试答案2024年
- 行业分析报告模板(很全面-非常有用)
- 内分泌系统疾病教学设计教案1
- 法人变更书面催促通知合集3篇
- 广东省初级中学教育装备标准
- 售票员岗前培训
- 教科版六年级下册科学第一单元《小小工程师》教材分析及全部教案(定稿;共7课时)
评论
0/150
提交评论