简单的面向过程的Redis存储加入购物车
群里有人问这个Redis存储用户购物车信息,我简单的写了个面向过程的demo
代码如下:
<?php
$user_id=session("user_id");//获取用户登录信息
$goods_id=isset($_POST['goods_id'])?$_POST['goods_id']:0;//获取要添加的商品id
if($user_id<1)
{
die("用户不存在或者尚未登录");//用户不存在或者尚未登录
}
if($goods_id<1)
{
die("传参丢失");//传参丢失
}
$goods_info=get_goods_info_by_goods_id($goods_id);//获取商品信息
$redis_object=new Redis();//实例化Redis模型
$my_cart_info=unserialize($redis_object->get("cart_".$user_id));//获取某个人的购物车信息
if(isset($my_cart_info[$goods_id]))
{
$my_cart_info[$goods_id]['count']++;//数量加 1
}else
{
//该商品首次加入购物车
$my_cart_info[$goods_id]=array(
"count"=>1,
"info"=$goods_info
);
}
$redis_object->set("cart_".$user_id,serialize($my_cart_info));//放入Redis
echo json_encode($my_cart_info);
exit();
?>
截图如下:

简单的面向过程的Redis存储加入购物车的更多相关文章
- 记录 shell学习过程(1) 超简单的面向过程的2个shell 分区以及创建lvm
分区 #!/usr/bin/env bash #fdisk /dev/sdb << EOF #n # # # #+600M #w #EOF 创建lvm pvcreate /dev/sdb ...
- 大话JS面向对象之扩展篇 面向对象与面向过程之间的博弈论(OO Vs 过程)------(一个简单的实例引发的沉思)
一,总体概要 1,笔者浅谈 我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭(面向对象式编程因为引入了类.对象.实例等概念,非常贴合人类对于世间万物的认 ...
- python全栈开发-Day11 迭代器、生成器、面向过程编程
一. 迭代器 一 .迭代的概念 迭代器即迭代的工具,那什么是迭代呢? 迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而 ...
- Python之路【第六篇】:Python迭代器、生成器、面向过程编程
阅读目录 一.迭代器 1.迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 代码如下: while True: ...
- python之迭代器、生成器、面向过程编程
一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不 ...
- python基础知识14---迭代器、生成器、面向过程编程
阅读目录 一 迭代器 二 生成器 三 面向过程编程 一 迭代器 1 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初 ...
- PYTHON-匿名函数,递归与二分法,面向过程编程
"""匿名函数1 什么是匿名函数 def定义的是有名函数:特点是可以通过名字重复调用 def func(): #func=函数的内存地址 pass 匿名函数就是没有名字的 ...
- python之旅:迭代器、生成器、面向过程编程
1.什么是迭代器? 1.什么是迭代器 迭代的工具 什么是迭代? 迭代是一个重复的过程,每一次重复都是基于上一次结果而进行的 # 单纯的重复并不是迭代 while True: print('=====& ...
- day5-python之面向过程编程
一.面向过程编程 #1.首先强调:面向过程编程绝对不是用函数编程这么简单,面向过程是一种编程思路.思想,而编程思路是不依赖于具体的语言或语法的.言外之意是即使我们不依赖于函数,也可以基于面向过程的思想 ...
随机推荐
- 【Python】 linecache模块读取文件
[linecache] 过往在读取文件的时候,我们通常使用的是这种模式: with open('file.txt','r') as f: line = f.readline() while line: ...
- Change Data template dynamically
1. Attached Property bound to task state. Any change will dynamically set data template.2. Visual St ...
- Python之collections.defaultdict
转自:http://www.jb51.net/article/88147.htm
- 【WPF】WPF DataGrid List数据源 双向绑定通知机制之ObservableCollection使用以及MultiBinding 的应用
以下代码实现了DataGrid的简单绑定List数据源 重点要提一下的是,绑定List数据源,但是不能直接用List.比如下面的代码,使用List<GridItem>只能实现数据修改的绑定 ...
- 看视频 shell入门视频补充的 shell脚本基本知识(TMD有点乱)
命令的组合: 1. 多个命令的顺序分隔: 1. 顺序分隔,使用 ; 顺序执行; 2. 逻辑与分隔, 使用 && , 一旦前面的命令执行失败,后面的命令就不会执行; ...
- Wireshark 捕获过滤器的语法
转自:http://blog.csdn.net/qq_29277155/article/details/52077239 前言 我们都知道,wireshark可以实现本地抓包,同时Wireshark也 ...
- wapp HTTP Error 404. The requested resource is not found.
原因: 本地80端口被占用,需要修改WAMP的默认端口 修改设置: 找到 bin/apache/apache***/conf/httpd.conf文件 将文件中的80修改为8088 修改这两个地方端口 ...
- Java虚拟机性能管理神器 - VisualVM(4) - JDK版本与VisualVM版本对应关系
Java虚拟机性能管理神器 - VisualVM(4) - JDK版本与VisualVM版本对应关系 JDK版本与VisualVM版本对应关系说明 JDK版本与VisualVM版本对应关系 参 ...
- Ubuntu 安装IntelliJ IDEA
1. 下载IDEA 官网地中:http://www.jetbrains.com/idea/download/index.html 选择对应操作系统的版本.下载后,我的文件名称为: idea ...
- iredmail邮件服务器之修改默认的web服务端口号
安装iredmail之后,由于需要在路由器上做端口映射以便在外网访问webmail,因此端口不能和WEB服务的端口好冲突,所以需要修改邮件服务器的httpd服务的端口. 一.apache/httpd的 ...