PHP Mysql与jQuery实现文件下载次数统计
本文导语: 本节内容: 文件下载次数统计的php代码,与jquery结合实现异步数据加载。 需求: 统计文件的下载次数,用户每下载一次文件,相应的下载次数加1,类似的应用在很多下载站中用到。 本文结合实例使用PHP+Mysql+jQuery,实现了点...
本节内容:
文件下载次数统计的php代码,与jquery结合实现异步数据加载。
需求:
统计文件的下载次数,用户每下载一次文件,相应的下载次数加1,类似的应用在很多下载站中用到。
本文结合实例使用PHP+Mysql+jQuery,实现了点击文件,下载文件,次数累加的过程,整个过程非常流畅。
一,准备工作
本实例需要读者具备PHP、Mysql、jQuery以及html、css等相关的基本知识,在开发示例前,需要准备Mysql数据表,本文假设有一张文件下载表downloads,用来记录文件名、保存在文件服务器
上的文件名以及下载次数。
前提是假设下载表中已存在数据,这些数据可能来自项目中的后台上传文件时插入的,以便在页面中读取。
downloads表结构:
`id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`filename` varchar(50) NOT NULL,
`savename` varchar(50) NOT NULL,
`downloads` int(10) unsigned NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `filename` (`filename`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
也可以直接下载Demo,导入SQL文件,数据都有了。
下载地址:PHP文件下载次数统计的源代码。
二,HTML部分
在index.html页面body中加入如下HTML结构,其中ul.filelist用来陈列文件列表,现在它里面没有内容,将使用jQuery来异步读取文件列表。
还需要在html中加载jQuery库文件。
三,CSS部分
为了让demo更好的展示页面效果,使用CSS来修饰页面,以下的代码主要设置文件列表展示效果,当然实际项目中可以根据需要设置相应的样式。
ul.filelist li{background:url("/tech-php/img/bg_gradient.gif") repeat-x center bottom #F5F5F5;
border:1px solid #ddd;border-top-color:#fff;list-style:none;position:relative;}
ul.filelist li.load{background:url("/tech-php/img/ajax_load.gif") no-repeat; padding-left:20px;
border:none; position:relative; left:150px; top:30px; width:200px}
ul.filelist li a{display:block;padding:8px;}
ul.filelist li a:hover .download{display:block;}
span.download{background-color:#64b126;border:1px solid #4e9416;color:white;
display:none;font-size:12px;padding:2px 4px;position:absolute;right:8px;
text-decoration:none;text-shadow:0 0 1px #315d0d;top:6px;
-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}
span.downcount{color:#999;padding:5px;position:absolute; margin-left:10px;text-decoration:none;}
四,PHP部分
为了更好的理解,分两个PHP文件,一个是filelist.php,用来读取mysql数据表中的数据,并输出为JSON格式的数据用来给前台index.html页面调用,另一个是download.php,用来响应下载动作
,更新对应文件的下载次数,并且通过浏览器完成下载。
其实还有一个数据库连接文件conn.php,已经打包在下载压缩包里了,点击这里下载。
filelist.php读取downloads表,并通过json_encode()将数据以JSON格式输出,这样是为下面的Ajax异步操作准备的。