Каждый раз, когда к файлу обращаются, это может быть в файле file.php, выполнить ОБНОВЛЕНИЕ в MYSQL со строкой идентификатора файла, обновить столбец с именем «загрузки» или что-то в этом роде.Обновите его, добавив к нему 1.
Например:
UPDATE songs SET downloads=downloads+1 WHERE id = song_id
На приведенной выше странице вы получите столбец загрузок и отобразите его после «Всего загрузок».
Не зная, используете ли вы какой-либо фреймворк, вы могли бы воспользоваться этим, если вы просто пишете простой PHP с нуля, вы можете использовать вышеописанное, как это.Вот обновленный файл downloads.php:
<?php
ob_start();
try {
// Database connection
require_once './includes/connection.php';
$conn = dbConnect('read');
// Sql query from table
if(isset($_GET['id'])){
$songid = $_GET['id'];
}
$sql = 'SELECT filename, album_art, downloads, song, song_id, artist FROM homemp3 WHERE
song_id ='.$songid;
$result = $conn->query($sql);
$row = mysqli_fetch_array($result);
<!doctype html>
<div class="container">
<div class="row">
<div class="col-12">
<div class="media">
<img src="./images/<?= $mainImage; ?>" alt="PowerBeatz" width="300" height="300" />
<div class="media-body">
<h5 class="mt-0"><span class="title"><?php echo $row['song']; ?></span></h5>
<?php echo $row['artist']; ?>
<div class="play">
<a href="file.php?id=<?php echo $row['song_id']; ?>" class="btn btn-primary"><i class="fa fa-download"></i> </a>
</div>
<div>
<p>Total Downloads: <?php echo $row['downloads']; ?></p>
</div>
</div>
</div>
</div>
</div>
</div>
А затем file.php
<?php
require_once './includes/connection.php';
$conn = dbConnect('read');
if(isset($_GET['id'])){
$songid = $_GET['id'];
}
$sql = 'SELECT * FROM homemp3 WHERE song_id ='.$songid;
$result = $conn->query($sql);
$row = mysqli_fetch_array($result);
$mp3 = 'homemp3/' .$row['filename'];
// Update download count
$conn = dbConnect('read');
$update = 'UPDATE homemp3 SET downloads=downloads+1 WHERE song_id ='.$songid;
$downloads = $conn->query($update);
// Get a date and timestamp
if(file_exists($mp3)) {
header('Content-Type: audio/mpeg');
header('Content-Disposition: attachment; filename="' .basename($mp3). '"' );
header('Content-length: '. filesize($mp3));
header('Cache-Control: no-cache');
header('Content-Transfer-Encoding: binary');
readfile($mp3);
header('Location: ' . $_GET['url']);
exit;
}
Не зная, как выглядит connection.php, я думаю, это будет работать.Попробуйте!