我正在我的网站上创建一个电子书帐户:客户可以在其中拥有一个电子书库,每次下载电子书时,我需要向数据库添加 1 以便客户能够看到下载次数。我无法弄清楚我需要的代码行,我已经做了研究,但没有什么可以帮助解决这个特定的查询。这是我到目前为止所拥有的,它从 sql 表中提取信息并显示在 html 表中:
<p>List of Publications</p>
<?php
//连接 $query = "从 AccountTest 中选择 *";
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
?>
<table style="width: 80%; border:2px #be9c81 dashed; padding:10px 10px 10px 10px"align="center" >
<tr>
<td> <?php if ($numrows > 0){
while($row = mysql_fetch_array($query))
{
?>
<a href="<?php echo $row['Link']; ?>" target="_blank">
<img style="padding:20px 20px 20px 20px" alt="" src="<?php echo $row['Image']; ?>" /></a> <?php
}
} else
echo "Wrong Query";
?>
</tr>
最佳答案
你可以使用 JQuery
电子书下载.php
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="javascript/text">
// JavaScript Document
function Downloaded(id) {
var data = {'id':id};
$.post( "downloaded.php", data);
}
</script>
</head>
<p>List of Publications</p>
<?php
//connect $query = "SELECT * FROM AccountTest";
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
?>
<table style="width: 80%; border:2px #be9c81 dashed; padding:10px 10px 10px 10px"align="center" >
<tr>
<?php
if ($numrows > 0){
while($row = mysql_fetch_array($query)) {
?>
<td><a href="<?php echo $row['Link']; ?>" onclick="Downloaded(<?php echo $row['id']; ?>);" target="_blank"><img style="padding:20px 20px 20px 20px" alt="" src="<?php echo $row['Image']; ?>" /></a></td>
<?php
}
} else {
echo "Wrong Query";
}
?>
</tr>
</table>
下载的.php
if(isset($_POST['id']) && is_numeric($_POST['id'])) {
$sql = "UPDATE table SET downloaded=downloaded+1 WHERE id = $_POST['id']";
}
编辑:我还没有测试过这段代码。此外,用户可能没有启用 JavaScript,在这种情况下,它不会计算下载次数,因此,如果您需要计算下载次数(例如,他们支付了如此多的费用),您可以确保他们在显示下载之前启用了 JavaScript。
更新:使用新选项卡和 PHP 记录下载然后呈现的另一种方法
<p>List of Publications</p>
<?php
//connect $query = "SELECT * FROM AccountTest";
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
?>
<table style="width: 80%; border:2px #be9c81 dashed; padding:10px 10px 10px 10px"align="center" >
<tr>
<?php
if ($numrows > 0){
while($row = mysql_fetch_array($query)) {
?>
<td><a href="download.php?id=<?php echo $row['id']; ?>" target="_blank"><img style="padding:20px 20px 20px 20px" alt="" src="<?php echo $row['Image']; ?>" /></a></td>
<?php
}
} else {
echo "Wrong Query";
}
?>
</tr>
</table>
<?php
######## download.php #######################
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$query = "SELECT * FROM ebooks WHERE id = $_GET['id']";
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
if ($numrows > 0) {
$sql = "UPDATE table SET downloaded=downloaded+1 WHERE id = $_POST['id']"; // update downloaded
while($row = mysql_fetch_array($query)) {
header('Content-Type: application/pdf');
header('Content-disposition: attachment;filename='.$row['name'].'pdf');
readfile($row['link']); // should be an absolute path
}
}
}
?>
关于php - 当网页上下载 pdf 链接时增加 SQL 数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426047/