Wie wäre es, wenn Sie hier nicht umständlich wären? Ich bin hauptsächlich mit der einfachen Methode zum Aufrufen des Redis-Hash- vertraut, wie in der Abbildung
Die Operation ist wie folgt
1: h
2: hGet
4:hDel
5:hGetAll
4:hExists
5:hIncrBy
EinfacheEinkaufswagen-Implementierung
useOrgNetHttp;
Cache
DriverRedis;class
IndexControllerextendsController
{public function construction(){Redis();}/***@Datei
: Ermitteln Sie, ob das rabattierte Produkt im Warenkorb vorhanden ist *@param$user_id*@param$goods_idpublic functiongoods_is_exist($user_id,$goods_id){$r1 =$this->redis_obj->hExists ($user_id,$goods_id);return
$r1;}/* **@file: Warenkorbartikel hinzufügen
**/public functionadd_goods(){$user_id= intval($_POST['user_id']) ? intval($_POST['user_id ']) :0;$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;$exist=$this ->goods_is_exist($user_id,$goods_id) ;if
(!empty($user_id) &&$goods_id) {//Es wurde kein Produkt hinzugefügt 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'));
}
}elseif($exist) {
//存在的商品增加1
$add_exist_result=$this->redis_obj->hIncrBy( $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' =>'error'));
}
}
}
}
//减少购物车的商品
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'=>'goods is not exist '));
}elseif($exist) {
$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['user_id']) ? intval($_POST['user_id']) :0;
$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;
if(!empty($user_id) && !empty($goods_id)) {
$arr= explode(',',$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'=>'remove success'));
}
}else{
$this->ajaxReturn(array('code'=>1 ,'msg'=>'param is empty'));
}
}
//购物车列表
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()
{
}
}
Das obige ist der detaillierte Inhalt vonEinfache Bedienung des Hash-Datentyps (Implementierung des Warenkorbfalls). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!