//提交订单
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. laravel 5.5.39 升级到 5.5.45 出现 cookie 序列化异常问题的解决

    把项目里的 laravel 5.5.39 升级到 5.5.45 后,出现如下报错: ErrorExceptionopenssl_encrypt() expects parameter 1 to be ...

  2. Java replace() 方法 替换字符 也可用于 js 中

    JAVA中: public class Test { public static void main(String args[]) { String Str = new String("he ...

  3. windows 下安装beego

    好久没写博客了,最近忙于一些杂事,看见有几个博友留言了,未能及时回复,稍后晚点回复诸位博友.不多说了,windows安装beego(请先确保git环境已安装并设置了git环境变量.这个简单网上很多教程 ...

  4. iOS---------审核被拒(隔壁群发的)

    Hello, We are writing to let you know the results of your appeal for your app The App Review Board e ...

  5. LiveData使用

    ### Andorid LiveData 使用 [[_TOC_]] #### Lifycycle 使用1.继承FragmentActivity 实现LifecycleOwner接口2.声明一个Life ...

  6. 此 iCloud 帐户已经存在。

    0x00 事件 将 Apple ID 换了一个邮箱,然后在 macOS 重新登陆的时候出现登录不上异常,始终显示 若要将此 Apple ID 用作主要的 iCloud 帐户,请从"互联网帐户 ...

  7. YARN HA部署架构

    hadoop001: zk rm(zkfc线程) nm hadoop002: zk rm(zkfc线程) nm hadoop003: zk nm RMStateStore: 存储在ZK的/rmstor ...

  8. MSSQL 删除数据库表数据

    --删除数据库表数据 慎用 create PROCEDURE sp_DeleteAllData AS ) ) ) ) ) ) begin try begin tran -- 失效索引,触发器 open ...

  9. acwing 66. 两个链表的第一个公共结点

    地址 https://www.acwing.com/problem/content/description/62/ 输入两个链表,找出它们的第一个公共结点. 当不存在公共节点时,返回空节点. 样例 给 ...

  10. WPF 绑定属性 XAML 时间格式化

    原文:WPF 绑定属性 XAML 时间格式化 XAML 时间格式化{Binding Birthday,StringFormat='yyyy-MM-dd '} public class AssetCla ...