首頁  >  文章  >  後端開發  >  哈希資料型別簡單操作(實作購物車案例)

哈希資料型別簡單操作(實作購物車案例)

PHPz
PHPz原創
2017-04-04 14:56:451895瀏覽

這裡不累贅如何安裝redis和php  redis擴展,主要熟悉呼叫redis雜湊資料型別

如圖

哈希資料型別簡單操作(實作購物車案例)


哈希資料型別簡單操作(實作購物車案例)
##簡單方法操作如下

1:h
Set

 


哈希資料型別簡單操作(實作購物車案例)

#2:hGet



哈希資料型別簡單操作(實作購物車案例)

#4:hDel



哈希資料型別簡單操作(實作購物車案例)

5:hGetAll



哈希資料型別簡單操作(實作購物車案例)

4:hExists



哈希資料型別簡單操作(實作購物車案例)



#5:hIncrBy哈希資料型別簡單操作(實作購物車案例)



哈希資料型別簡單操作(實作購物車案例)

# 購物車實作



哈希資料型別簡單操作(實作購物車案例)



哈希資料型別簡單操作(實作購物車案例)



哈希資料型別簡單操作(實作購物車案例)





namespaceHome\Controller;

#useThink\Controller;

namespaceHome\Controller;#useThink\Controller;

useOrg\Net\Http;

#useThink\

Cache

\Driver\Redis;

class

IndexController

extends

Controller

{#private$redis_obj =

null

;

public functionconstruct()

{

$this->redis_obj=

new

Redis();

}

/**

*@

file

:判斷購物車是否存在這減商品

*@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:增加購物車商品######*######*/######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) {######//不存在增加商品######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()

{

##}

##}

#

以上是哈希資料型別簡單操作(實作購物車案例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn