ホームページ >バックエンド開発 >PHPチュートリアル >ハッシュデータ型の簡単な操作(ショッピングカートケースの実装)
ここはどうですかインストールredisとphp redis拡張機能、主にredisハッシュデータ型
を呼び出すことに慣れています写真に示されています
簡単な方法は次のとおりです
1:hSet
キャッシュDriverRedis;
{private $redis_obj=null;
public functionconstruct(){$this->redis_obj=newRedis();
}/***@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'=>'商品は存在しません'));
}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 '=>'成功','num'=>$new_value));
}else{
$this->ajaxReturn(array('code'=>1,'msg'=>' error'));
}
}
}
}else{
$this->ajaxReturn(array('code'=>1,'msg'=>'param が空です') );
}
}
//移除商品
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'=>'成功を削除'));
}
}else{
$this->ajaxReturn(array(' code'=>1,'msg'=>'param が空です'));
}
}
//购物车列表
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 が空です'));
}
}
//设置一商品の数量
public functionedit_goods_num()
{
}
}
以上がハッシュデータ型の簡単な操作(ショッピングカートケースの実装)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。