应用程序写入Zend Framework 1.12
。 我的影片可供url
下:如何统计每个视频的独特视图
test.com/videos/video/id/1
test.com/videos/video/id/2
test.com/videos/video/id/3
...
在数量是从MySQL数据库生成的唯一参数。 我想统计每个视频的视图(唯一)。
在VideosController
我的视频动作看起来像:
public function videoAction() {
$video_id = $this->_getParam('id', 0);
$hits = new Application_Model_DbTable_Hits();
$hit = $hits->fetchRow($hits->select()->where('belongs_to_video = ?', $video_id));
if (!isset($_SESSION['views']) || !($_SESSION['views'] == $video_id){
$_SESSION['views'] = $video_id;
$newViews = $hit->count + 1;
$data = array('count' => $newViews,);
$hits->update($data);
}
}
它的工作原理,但是,没有一个正确的方式。在访问特定的视频后(不刷新网站之后),在去另一个视图之后也会升高(在不刷新网站之后),但在回到第一个视图之后,他们再次上升(他们不应该)。
任何帮助表示赞赏。
为什么在会话中保持意见? – Naincy
确实会话不适合这个你需要一个表“视图”,你在哪里存储video_id,ip,datetime ..当你可以使用这个查询来为每个视频选择独特的视图(独特的ip)'SELECT video_id,COUNT(DISTINCT ip )从视图GROUP BY video_id ORDER BY video_id' –