【问题标题】:How can I count downloads?如何计算下载量?
【发布时间】:2011-03-19 12:56:18
【问题描述】:

我编写了一个脚本,该脚本在下载开始之前通过 $_GET 传递文件的 ID(存储在 db 中)显示广告。现在我想计算每个文件下载了多少次并将数字保存在数据库中。有什么帮助吗?谢谢。

【问题讨论】:

  • 您的意思是要统计广告页面的访问次数或实际下载次数(准确地说是下载开始次数)?
  • 下载次数。

标签: php mysql download counter


【解决方案1】:

看到广告后,您将用户重定向到这样的 php 文件:

$result = file_get_contents($filenames[$_GET['file_id']] . '.txt');
mysql_query("UPDATE files SET downloads = downloads+1 WHERE `file` = ".$_GET['file_id']);
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="text_file.txt"');
echo $result;

【讨论】:

  • 应该清理和检查所有涉及 MySQL 查询的变量的类型
  • 这只是一个简单的脚本来得到这个想法:)
【解决方案2】:

如果您已经有一个列出下载 ID 的数据库表,请使用以下内容:

$pdo->prepare("UPDATE files SET count = count + 1 WHERE id = ?")
    ->execute(array($_GET["id"]));

【讨论】:

    【解决方案3】:

    您可以在文件表中添加列,该列将存储下载次数。您应该在每次下载每个文件时增加它。

    【讨论】:

    • 我已经这样做了,但是我如何实际计算下载次数?
    • 在显示广告的脚本中执行。根据文件ID从数据库中选择行,获取下载次数,递增并发出UPDATE命令。
    • 但是如何“获取下载次数”呢?对不起,我是新手。
    • 好的。假设广告脚本是get.php。获取索引i的文件是get.php?file=i。然后在文件表中搜索 id 为 i 的行。在这个表中应该有一个 count 列或其他东西。从您的数据库引擎返回的结果中获取它,增加它并更新您的表。这是最新手的解释。
    猜你喜欢
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多