实践 商城商品页 浏览历史记录功能

时间:2022-07-30 13:13:09

创建cookie我直接就写在了 V上

//历史浏览记录          
       $id = $_SERVER['QUERY_STRING'];        //获取地址栏上商品id路径  
       if (!isset($_COOKIE['hisgory'])) {     //检查cookie是否设置 第一次访问  
          $his[] = $id;                     //访问过的uri放到数组里
        }else {
          $his = explode('|', $_COOKIE['hisgory']);  
          $his[] = $id ;  
          $his = array_unique($his);         //移除数组中重复uri
          array_unshift($his, $id );         //开头插入  新的uri
         
          if (count($his)>5) {               //数量大于5 就移除尾部uri
            array_pop($his);
          }
        }
        setcookie('hisgory',implode('|', $his));  //创建cookie

//显示5条最新的历史记录      
$glist = $goods->findHis($his);

model里 

   //循环查询5条最新的COOKIE历史记录 以goods_id
   /*
    param array $his //COOKIE uri记录
    return sql语句查询的5条数据
   */
    public function findHis($his){    
      $in = array();               //存放goods_id
       if (!empty($his)) {         //浏览记录不为空的情况
         foreach ($his as $v) {    //遍历uri
          $sub = explode('=', $v); //用=号分割uri中的goods_id
          $in[] = $sub[1];         //把goods_id 放入数组
        } 
       }  
        $in = implode(',', $in);   //把数组用逗号分割 能用in型代入sql
       //print_r($in);
       //拼接sql
       $sql = 'select goods_id,goods_name,shop_price,thumb_img,market_price from ' .
              $this->table . ' where goods_id in (' . $in . ') order by add_time limit 5';
       return $this->db->getAll($sql);
      } 
实践 商城商品页 浏览历史记录功能