只要消费就要进行结账,自己写的结账功能。

这个也是要连接数据进行修改的,比如购买了东西,写入了数据库,结账结束后,自然要把数据库进行清空,将结账的钱写入数据库,进行保存。

和上一个随笔相连,同样做一个菜单的结账功能吧。

我是用了两张表进行存数据,一张是桌子信息的表,另一张就是点餐后的点餐表,到结账时,对点餐表进行总和金额,写入桌子表,同时,点餐表中关于这张桌子点的餐也就清除。

一、数据库

情况桌子的信息表:                                                                   每张桌子的点餐情况(canpin是一张所有菜品的表,这里是它的代号):

二、结账页面的布局还有添加结账功能

1、结账页面的布局很简单(注意:要将用到的bootstrap提前引入)

注意:这里是关于每张桌子的,所以有暂存桌号,这个可以用session,因为是只写结账功能,这个提一下

(1)可以加一个标题:结账

结账

(2)接下来就是遍历数据库了,遍历一下这张桌子的点餐情况(前面我已经提到了session暂存桌号code)

可以用一张表显示点餐信息

餐品 单价 数量 服务员 时间

(2.1)遍历数据库

先要是桌子的遍历

session_start(); //开启session

$code = $_GET["code"]; //session的值

include("DBDA.class.php"); //调用封装好的数据库

$db = new DBDA(); //造新对象

$sql = " select * from diancan where code={$code}"; //查询一下桌号的那张表的code和session值一样的所有信息

$attr = $db->Query($sql); //执行一下语句

foreach($attr as $v)

{

//输出桌号信息

echo "

{$v[1]}桌

";

}

?>

然后就是每张桌子的消费结果详情表(要写在表格的标签中)

$sql =" select * from yidiancan where code='$v[1]'"; //查找点餐详情表中的code和上面遍历出来的桌号相等

$attr = $db->Query($sql); //执行查询语句

foreach( $attr as $v)

{

$cha="select name from caidan where code='{$v[2]}'"; //查找菜单的那个code的名字

$cp=$db->Query($cha);

echo "

{$cp[0][0]}{$v[3]}{$v[4]}{$v[5]}{$v[6]}";

}

?>

看下遍历的结果

2、布局结束后,就是结算的功能部分了

(1)就是显示下总价格

价格:单价*数量(在表中单价和数量都是有的,直接遍历相乘就可以啦)

$sql =" select * from yidiancan where code='$v[1]'"; //遍历点餐信息

$attr = $db->Query($sql); //执行语句

$sum=0; //先给sum赋值为0

foreach( $attr as $v)

{

$cha="select name from caidan where code='{$v[2]}'"; //查找菜单的名字

$cp=$db->Query($cha); //执行语句

$sum=$sum+$v[3]*$v[4]; //数量和单价的那一列相乘,并且把值赋给sum

}

//输出这个总价格(样式是单选按钮)

echo "总消费:{$sum}";

?>

(2)有时是不是也会打折什么的?

先写出打折的两个选项

折扣

九五折

八折

写出一个打折后,让价格显示出来的地方

接下来就是利用ajax方法来进行计算打折后的价格,并且显示

$("#zhekou").click(function(){

var zj = $("#zj").val(); //找到总价的单选按钮的值

var ck = $(".ck"); //找到打折的单选

var str = "";

for(var i=0;i

{

if(ck.eq(i).prop("checked")) //单选按钮的选中状态

{

var num = ck.eq(i).val()*zj; //这个就是总价*折扣选中的单选按钮的值

str+="打折后收账:"+num.toFixed(1);

}

}

$("#zhehou").html(str); //将str的值写入折后价格显示的地方

})

看下这个功能的结果

三、既然这个功能实现了,是不是要写入数据库了呢?

这样可以添加一个确定按钮,给这个按钮写入事件

这个按钮起了个名字,接下来就是添加单击事件

$("#save").click(function(){

var zhuo = $("#zhuo").val(); //找到桌的值

var jie = $(".jie"); //找到jie单选按钮的

var str = "";

for(var i=0;i

{

if(jie.eq(i).prop("checked")) //判断单选钮是否选中

{

str = str+jie.eq(i).val()+"|";

}

}

str = str.substr(0,str.length-1); //截取子串

$.ajax({

url:"savee.php", //保存的处理页面

data:{zhuo:zhuo,jie:str}, //将值传过去

type:"POST", //传输的方式

dataType:"TEXT",

success: function(data){

if(data.trim()=="OK")

{

alert("结算成功!");

}

window.location.href="jie11.php?code=<?php echo $code; ?>"; //刷新页面

}

});

})

保存的处理页面

session_start();

include("DBDA.class.php"); //调用的封装类

$db = new DBDA(); //造新对象

//传过来的用户和选项的

$zhuo = $_POST["zhuo"];

$jie = $_POST["jie"];

$time = date("Y-m-d H:i:s");

$su = "update diancan set money=money+'{$jie}' where name='{$zhuo}'"; //修改表中的money值,并且每次添加新值是相加而不是重新写入

$db->Query($su,0); //执行语句

$attr = explode("|",$jie);

foreach($attr as $v)

{

$sql1 = "update diancan set time='{$time}' where name='{$zhuo}'"; //修改时间,写入当前时间

$db->Query($sql1,0); //执行语句

$sql = "update diancan set isok='0' where name='{$zhuo}'"; //修改状态

$db->Query($sql,0); //执行语句

$sq2 = "delete from yidiancan where code='{$zhuo}'"; //结账结束后,点餐内容删除

$db->Query($sq2,0);

echo "OK";

}

下面看下结果

(1)这是页面的内容,还有打折后的价格

(2)看下数据库,点餐表的桌的信息

已点餐的表

(3)点击确定按钮后

页面已经刷新,没有了这一桌的点的菜

数据库两张表的也发生了改变

到此结账功能就结束了

mysql 备份数据库结账_简单的结账功能(可用于各种结账)相关推荐

  1. mysql 备份数据库结账_年度结转问题综合解答(转)

    1:备份还 是备份(用的很多操作是没有办法反结帐或反操作的,可以用恢复有方式返回到前一个操作状态) 备份方法: 1:用用友自带工具备份: 系统管理--admin(或帐套主管)注册-- 帐套--输出(选 ...

  2. Mysql数据库的简单备份与还原_简单的MySQL备份与还原方法分享

    为了安全起见,需要经常对数据库作备份,或者还原.对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出.导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyA ...

  3. mysql 备份如何使用_如何使用命令来备份和还原MySQL数据库

    数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.那么多备份就简单介绍如何使用命令来备份和还原MySQL数据库. 备份数据库 使用mysqldu ...

  4. go 用 mysql web开发环境_简单讲解Go程序中使用MySQL的方法

    go官方仅提供了database package,database package下有两个包sql,sql/driver.这两个包用来定义操作数据库的接口,这就保证了无论使用哪种数据库,他们的操作方式 ...

  5. mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件

    MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...

  6. mysql 点赞数据库设计_基于redis实现的点赞功能设计思路详解

    点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysq ...

  7. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  8. mysql备份数据库某表格_MySQL备份:使用自动轮换表格备份,轻松恢复部分/完整数据库...

    MySQL备份:按表自动轮换备份,易于恢复部分/完整数据库 这是一个MySQL备份脚本,可以采用压缩格式的表格备份(每个数据库的每个表的单个备份文件). 它还提供了自动轮换旧的备份文件. 备份脚本分别 ...

  9. mysql 备份数据库原则_MySQL数据库备份方法说明

    MySQL数据库备份方法说明 更新时间:2007年07月29日 17:52:57   作者: 在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最 ...

  10. mysql实现内容加密_简单为mysql 实现透明加密方法

    一般用户在数据库中保存数据,虽然数据库存储的是二进制,无法直接明文打开查看,但是如果是一个外行人,直接连接进入mysql中,还是可以直接查看数据的. 所以对于一些核心数据,特别是企业重要数据资产,一般 ...

最新文章

  1. [Shell 脚本] 备份数据库文件至OSS服务(纯shell脚本无sdk)
  2. 【转】清理Visual Studio打开的项目和文件、查找和最近引用组件痕迹
  3. ubuntu运行docker报错:invalid mount config for type “bind“: field Source must not be empty.(没解决)
  4. Android学习笔记:TabHost 和 FragmentTabHost
  5. ResNet家族迎来新王者!一套模型改进多项视觉任务
  6. Android Studio(13)--- Git之使用GitHub搭建远程仓库
  7. BTC 5分钟内跌幅1.05%,现价28531.78usdt
  8. 数学建模:评价模型——聚类分析 K-Means python实现
  9. OpenStack - 学习经验总结
  10. 字符常量和字符串常量
  11. 分享几个特别好用且免费的图片/视频/gif/mp3压缩网站
  12. ios迅雷php格式,2019最新最全iOS迅雷文件提取方法
  13. 激光发生器的防浪涌防静电保护
  14. 局域网之间两台计算机同屏,spacedesk解决两台电脑同屏的问题
  15. linux命名空间(namespace)学习(一)
  16. 使用OpenSSL库接口,实现AES CBC加密,基于X509 base64编码证书的RSA非对称加密例子
  17. TestFlight用法(iOS APP官方测试工具)
  18. Orange pi GPIO输出控制,裸机点灯大法(二)!
  19. 哀悼日网页变灰的方法
  20. PyTorch开发者福音, OpenVINO整合PyTorch实现推理加速!

热门文章

  1. 黑苹果uhd630黑屏_i7-9700k,UHD630核显,HDMI接口,usb3.0,成功黑苹果!-远景论坛-微软极客社区...
  2. 2020年博客日报第4篇|多数据源管理插件(支持不同数据库)
  3. 载波层叠调制在多电平变换器及两电平变换器中的应用
  4. 【Android App】实战项目之实现你问我答的智能语音机器人(超详细 附源码和演示视频)
  5. 工作3年的Java程序员如何成功跳槽,7K一飞到22K
  6. HDU - 3594 Cactus (仙人掌图)
  7. BeanFactory和ApplicationContext接口的联系和区别
  8. docker--swarm集群管理(结合harbor仓库、docker stack部署、Portainer可视化)
  9. 函数式编程中的函数是什么?
  10. WhatsApp账号被封了怎么办(附解封方法)