php中如何实现网上商城用户历史浏览记录的代码
/如是COOKIE 里面不为空,则往里面增加一个商品ID
if (!empty($_COOKIE['SHOP']['history'])){
//取得COOKIE里面的值,并用逗号把它切割成一个数组
$history = explode(',', $_COOKIE['SHOP']['history']);
//在这个数组的开头插入当前正在浏览的商品ID
array_unshift($history, $id);
//去除数组里重复的值
$history = array_unique($history);
// $arr = array (1,2,3,1,3);
// $arr = array (1,1,2,3,3);
// $arr = array (1,2,3);
//当数组的长度大于5里循环执行里面的代码
while (count($history) > 5){
//将数组最后一个单元弹出,直到它的长度小于等于5为止
array_pop($history);
}
//把这个数组用逗号连成一个字符串写入COOKIE,并设置其过期时间为30天
setcookie('SHOP[history]', implode(',', $history), $cur_time + 3600 * 24 * 30);
}else{
//如果COOKIE里面为空,则把当前浏览的商品ID写入COOKIE ,这个只在第一次浏览该网站时发生
setcookie('SHOP[history]', $id, $cur_time + 3600 * 24 * 30);
}
//以上均为记录浏览的商品ID到COOKIE里,下面将讲到怎样用这样COOKIE里的数据
//取得COOKIE里的数据 ,格式为1,2,3,4 这样,当然也有可以为0
$history =isset ($_COOKIE['SHOP']['history']) ? $_COOKIE['SHOP']['history'] : 0;
//写SQL语句,用IN 来查询出这些ID的商品列表
$sql_history = "SELECT * FROM `goods` WHERE `goods_id` in ({$history})";
//执行SQL语句,返回数据列表
$goods_history = $db->getAll($sql_history);
if ($goods_history) {
$tpl->assign ('goods_history',$goods_history);
}
主要是通过操作数组来实现的,用到一些操作数组的函数。
最新文章
- JavaScript 随笔1
- 帝国cms实现会员注册之后根据所在会员组转向的方法
- BZOJ4503: 两个串
- Direct基础学习系列3 绘制+实例
- (二)iOS如何把所有界面的状态栏的字体颜色都设置为白色
- br与p标签区别
- Android Context作用
- BZOJ2101: [Usaco2010 Dec]Treasure Chest 藏宝箱
- HTTPClient和URLConnection核心区别分析
- Java如何判断字符串中包含有全角,半角符号
- IOS开发创建开发证书及发布App应用(七)——在iTunes创建填写应用基本信息
- 201521123042 《Java程序设计》第6周学习总结
- JavaScript系列----数据类型以及传值和传引用
- C++中const的用法
- EF to Sqlite
- 内省(Introspector)
- map映照容器
- mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,
- ajax----tomact服务器运行
- Python3.X 安装Scrapy