【问题标题】:Hyperlink to download a file when clicked, and increment a field for each download that takes place单击时下载文件的超链接,并为每次下载增加一个字段
【发布时间】:2013-09-23 20:03:16
【问题描述】:

我有一个 SQL 语句,它输出存储在 MySQL 数据库中的教学资源表。我可以在表格中输出教学资源列表,这很好。我可以使用一系列超链接,每个教学资源一个,这样当你点击超链接时,它会下载资源。代码如下:

echo '<a href="'.($row['resource_name_path']).'?res_id='.$row['resource_id'].'"style="color:#900">'.htmlspecialchars($row['hyperlink_resource_name']).'</a>';

但是,每次有人单击超链接时,我不只是希望下载资源,而是希望每次教学资源时 MySQL 数据库中的“下载次数”字段增加 1下载。这会让您知道每种教学资源被下载了多少次,以查看哪个最受欢迎。问题是如何?

上面的超链接允许下载教学资源,但是我如何'允许下载'并运行SQL语句来更新下载数量'字段?我可以在不离开页面的情况下运行 PHP 函数,使用 javascript 调用它吗??

这对我来说似乎是不可能完成的任务,所以任何建议都将不胜感激,这是第一次来这里,所以放轻松!!

【问题讨论】:

  • 你可以让链接转到一个 PHP 页面,它可以通过查询将下载增加 1,然后使用header('Location:'.htmlspecialchars($row['hyperlink_resource_name'])) 重定向到下载链接,他们甚至不会知道它增加了它:)
  • 另外,也许您可​​以将链接设为echo '&lt;a href="file.php?dl='.htmlspecialchars($row['hyperlink_resource_name'])).'"&gt;Link&lt;/a&gt;,然后您可以使用$_GET['dl']

标签: javascript php mysql sql hyperlink


【解决方案1】:

是的,您可以使用 javascript 运行 php 脚本来更新 MySql 表。使用 AJAX 来完成,这样您就不必离开页面。

尝试谷歌搜索 AJAX 代码示例以了解如何使用它。

【讨论】:

    【解决方案2】:

    只是一个想法...但我真的不喜欢在任何数据库中增加计数字段。更新的内容并不总是很清楚,并且计数可能会以 0 纸迹横向排列以解决原因。与其增加一个字段,不如创建一个名为“downloads”的表或某种程度的表,该表为每次下载保存一行以及将其映射到正在下载的资源的 ID。要从此设置中获取总下载计数,请使用简单的 select id,count(1) from table group by id。

    单击链接时,您仍然需要运行“插入”语句,因此这并不能真正回答您的问题....但是现在您将拥有一个每次下载一行的表格可以很容易地被视为对您的下载计数的验证

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      相关资源
      最近更新 更多