//提交订单
function add_order(){
session_start();
// var_dump($_SESSION);
// die();
// session_destroy();
// die(); $ary =$_POST['order'];
$ary= json_decode($ary, true);
// var_dump($data1);
// die(); $shop_list = $ary['order'];
$total_money = $ary['order_money'];
$obj =UserModel::getInstance();
//获得user_id
$user_id = $_SESSION['uid'];
//获得对应的cart_id
$sql = "select id from cart where user_id = '$user_id'";
$cart_id = $obj->getOne($sql); // $arr = $_SESSION['gwc'];
foreach($shop_list as $k=> $shop){
// var_dump($k);
// die();
// 获取对应商品的订单金额
$xiaoji = $ary[$k]; // 获取8位随机值作为order_id $strs="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";
$random=substr(str_shuffle($strs),mt_rand(0,strlen($strs)-11),8);
$order_id = strval(time())."$random";
//插入一条订单
$sql = "INSERT INTO orders(id,user_id,xiaoji) VALUES ('$order_id', '$user_id',$xiaoji)";
$obj->exec($sql);
// die();
// echo "$sql";
// die();
foreach($shop as $sid=> $sku_id){ // 拼接sku_id
// $sku_id = "$goods_id"."_"."$color_id"."_"."$size_id";
$number ="num_$sku_id";
$price = "price_$sku_id";
$num = $ary[$number];
$pay_price = $ary[$price];
//插入一条sku_orders记录
$sql = "INSERT INTO orders_sku(sku_id,orders_id,num,pay_price) VALUES ('$sku_id','$order_id',$num,$pay_price)";
// echo("$sql");
// die();
$obj->exec($sql); // $sql = "select count(*) from cart_sku";
// echo("$sql");
// die();
// $_SESSION["goods_number"] = $obj->getOne($sql);
$_SESSION["goods_number"]--; $sql = "delete from cart_sku where sku_id = '$sku_id' and cart_id = '$cart_id'";
// echo("$sql");
// die();
$obj->exec($sql); } } echo "OK";
exit; // die(); }
json_decode($ary, true);这句是把ajax方式传过来的json串,转为php的数组数组形式,还有一种是转为对象。

 

$strs="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";
$random=substr(str_shuffle($strs),mt_rand(0,strlen($strs)-11),8);

上面两句是从str字符串(包含大小写和数字)获取一个8位的随机值。


$order_id = strval(time())."$random";这句是使用时间戳和一个随机值拼接形成订单的id。


json字符串转为php数组,使用随机字符串生成订单号(学生笔记)的更多相关文章

  1. 字符串、bute[]数组和十六进制字符串的相互转换

    1.字符串转换成十六进制字符串 public static String str2HexStr(String str) { if (EncodingUtil.isEmpty(str)) { retur ...

  2. java 如何对由json对象构成的数组形式的字符串进行遍历?

      1.情景展示 现在已知字符串为: [{"name":"微微笑","img":"http://zos.alipayobjects ...

  3. C#将MD5后的字符串转为字符数据,随机大小写

    一如下代码 public static string GenerateCode(Guid id, DateTime endTime, string Type) { string str = id + ...

  4. JavaScript字符串和字符数组

    字符串 字符串与字符数组: 字符串:var a = 'ddd'; 字符数组:var arr = 'f','o','o' 相同点: 1.都是类数组 2.都有length属性 3.都有indexOf()和 ...

  5. 【C#】字符串与字符数组

    字符串与字符数组的相互转换. 字符串转换成字符数组: string ss="abcdefg"; char[] cc=ss.ToCharArray();     字符数组转换成字符串 ...

  6. (C#)生成指定长度的随机字符串的通用方法

    .NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: #region 生成指定长度的随机字符串 / ...

  7. php json字符串转为数组或对象

    从网上查到的方法是 用get_object_vars 把类类型转换成数组 然后在用foreach  遍历即可 $array = get_object_vars($test); $json= '[{&q ...

  8. JSON字符串转为JSON对象

    在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是对象,所以,JSON对象(js对象)和JSON字符串之间的相互转换是关键. JSON可以有两种格式,一种是对象格式的,另一种是数 ...

  9. json对象转为字符串,当做参数传递时加密解密

    [son对象  字符串 互相转行] 比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex ...

随机推荐

  1. 计算机组成原理——DMA存取方式

    DMA(Direct Memory Access)直接存储器存取 高速大容量存储器和主存之间交换时,若采用程序直接传送或程序中断传送的方式,则会有如下问题发生.    1)采用程序直接传送,主机工作效 ...

  2. IdentityServer4 常见问题 - 用户拒绝授权后报错

    1.问题说明 在 IdentityServer4 Web 授权中,一般会有一个显示客户端需要获取用户的那些信息的页面,询问用户是否同意: 在这个页面如果我们点击"No, Do Not All ...

  3. C# Xamarin 数据绑定入门基础

    目录 关于数据绑定 视图-视图绑定 绑定模式 简单的集合绑定 C# Xamarin 数据绑定入门基础 关于数据绑定 Xamarin 单向.双向绑定 Xaml绑定 C#代码绑定 在此之前,几段 伪代码 ...

  4. navicat 12激活

    激活软件:https://github.com/DoubleLabyrinth/navicat-keygen/releases 激活说明:https://github.com/DoubleLabyri ...

  5. Implement Property Value Validation in Code 在代码中实现属性值验证(XPO)

    This lesson explains how to set rules for business classes and their properties. These rules are val ...

  6. 利用jquery实现前端同步请求---判断姓名是否为空并设置事件

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...

  7. js-事件函数调用简化

    // 一般写法 function fn(event) { console.log(event) } div.onclick = function (event) { fn(event) } ===== ...

  8. CamlQuery对SharePointOnline List 发起查询请求

    最近的项目中遇到了一个需求,需要向SharePointList 查询Item是否存在,找到了CamlQuery这样一个方法,但是没有找到使用这个接口的频率限制说明文档,于是就有了这篇随笔. 新接触这个 ...

  9. 038.[转] JVM启动过程与类加载

    From: https://blog.csdn.net/luanlouis/article/details/40043991 Step 1.根据JVM内存配置要求,为JVM申请特定大小的内存空间 ? ...

  10. bayaim_mysql5.6下table_open_cache参数

    bayaim_mysql5.6下table_open_cache参数_2017年12月26日10:51:58 原创 作者:bayaim 时间:2017-12-26 10:57:17 1 0删除编辑 ( ...