【问题标题】:How to make a 'recently viewed' items in codeigniter (v2)如何在 codeigniter (v2) 中制作“最近查看”的项目
【发布时间】:2012-02-10 15:45:13
【问题描述】:

谁能建议使用 codeigniter 创建最近查看的项目/页面逻辑的最佳解决方案?如果可能的话,我更喜欢使用 codeigniter 会话而不是标准的 $_SESSION。

另外 - 添加到会话,但一旦我点击数组中的 10 个项目以删除数组中最旧的项目。

【问题讨论】:

标签: php arrays codeigniter session frameworks


【解决方案1】:
    $recentlyViewed = $this->session->userdata('recentlyViewed');
    if(!is_array($recentlyViewed)){
        $recentlyViewed = array();  
    }
    //change this to 10
    if(sizeof($recentlyViewed)>3){
        array_shift($recentlyViewed);
    }
    //here set your id or page or whatever
    if(!in_array($data['id'],$recentlyViewed)){
        array_push($recentlyViewed,$data['id']);
    }
    $this->session->set_userdata('recentlyViewed', $recentlyViewed);    
    $recentlyViewed = array_reverse($recentlyViewed);
    //var_dump($recentlyViewed);

现在使用 or_where 查询对最近查看的 foreach 进行查询

【讨论】:

  • 这应该被标记为正确答案,就像原始海报一样,这正是我需要它做的,谢谢。
  • 同意这是一个很好的方法@Paul501 谢谢
【解决方案2】:

我不知道这种方法是否适合您,但您可以将此类数据转储到带有时间戳的 SQL 数据库中,然后将 SQL 查询的“升序”/“降序”属性与“limit(10)”属性...对于您要完成的工作可能需要付出太多努力,但您也可以将查询数据与 CI 会话对象同步?不知道,只是一个想法:D

【讨论】:

    猜你喜欢
    • 2010-10-08
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多