Que diriez-vous de ne pas être encombrant iciInstallerredis et l'extension php redis , principalement familier avec la méthode simple d'appel du hachage redis type de données
comme le montre la figure
Le fonctionnement est le suivant
1 : hSet
2 : hGet
4:hDel
5:hGetAll
4:hExiste
5:hIncrBy
Mise en œuvre simple du panier d'achat
namespaceHomeController;
useThinkController;
useOrgNetHttp;
useThinkCacheDriverRedis;
classIndexControllerextendsController
{
private$redis_obj=null;
public function construct()
{
$this->redis_obj=newRedis();
}
/**
*@fichier : Déterminez si le produit en promotion existe dans le panier
*@param$user_id
*@param$goods_id
*/
public functiongoods_is_exist($user_id,$goods_id)
{
$r1 =$this->redis_obj->hExists ($user_id,$goods_id);
return$r1;
}
/* *
*@file : Ajouter des articles au panier
*
*/
public functionadd_goods()
{
$user_id= intval($_POST['user_id']) ? ']) :0;
$goods_id= intval($_POST['goods_id']) ? ->goods_is_exist($user_id,$goods_id) ;
if
(!empty($user_id) &&$goods_id) {//Il n'y a aucun produit ajouté
if(!$exist) {
$add_return=$this->redis_obj->hSet($user_id,$goods_id,1);
if( $add_return) {
$this ->ajaxReturn(
array
('code'=>0,'msg'=>'success'));}else{
$this->ajaxReturn(array('code'=>1,'msg'=>'error'));
> $user_id,$goods_id,1);if($add_exist_result) {$this->ajaxReturn(array('code'=>0,'msg'=> 'success','1'=>$add_exist_result));}else{$this->ajaxReturn(array('code'=>1,'msg' =>'erreur')); public functionreduce_goods(){$user_id= intval($_POST['user_id']) ? intval($_POST['user_id']) :0;$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;if(!empty($user_id) &&$goods_id) {$exist=$this->goods_is_exist($user_id ,$goods_id);//不存在if(!$exist) {$this->ajaxReturn(array('code'=>1 ,'msg'=>'les marchandises n'existent pas '));}elseif($existe) {$val=$this->redis_obj->hGet($ user_id,$goods_id);if($val==1) {//购物车商品只有一件的时候 减少到0就是删除
$del_result =$this->redis_obj->hDel($user_id,$goods_id);if($del_result==1) {$this->ajaxReturn(array(' code'=>0,'msg'=>'success','num'=>0));}}elseif($val>1) {$new_value=$this->redis_obj->hIncrBy($user_id,$goods_id,-1);if($new_value>0) {$ this->ajaxReturn(array('code'=>0,'msg'=>'success','num'=>$new_value));
}else{$this->ajaxReturn(array('code'=>1,'msg'=>'error'));}}}}else{$this->ajaxReturn(array('code'=>1,'msg'=>'param is empty'));}}//移除商品public functionrm_goods(){$user_id= intval ($_POST['id_utilisateur']) ? intval($_POST['user_id']) :0;$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;if(!empty($user_id) && !empty($goods_id)) {$arr= explose
(',',$goods_id);
array_unshift
($arr,$user_id);$rm_result= call_user_func_array(array($this-> redis_obj,"hDel"),$arr);if($rm_result>=0) {$this->ajaxReturn(array('code'=>0,' msg'=>'supprimer le succès'));}}else{$this->ajaxReturn(array('code'=>1 ,'msg'=>'param est vide'));
}}
//购物车列表public functioncart_list
(){$user_id= intval($_POST['user_id']) ? intval($_POST['user_id']) :0;if(!empty($user_id)) {$goods_list=$this->redis_obj->hGetAll($ user_id);$this->ajaxReturn(array('code'=>0,'list'=>$goods_list));}else{$this->ajaxReturn(array('code'=>1,'msg'=>'param is empty'));}
}
//设置一个商品的数量public functionedit_goods_num(){}}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn