compteur de téléchargement en php avec la fonction pdo
- Accueil
- Forum
- Programmation
- PHP
- compteur de téléchargement en php avec la fonction pdo
jeannot_gates Le 18 avril 2016 à 19:23 (Édité le 25 janvier 2019 à 17:50)
Florian Le 18 avril 2016 à 22:59 (Édité le 1 janvier 1970 à 01:00)
Ta page pour télécharger imaginons c'est www.tonsite.fr/download?id=10
Dés qu'une personne clique dessus ça va download le fichier, et tu as juste a ajouter +1 a ta table download imaginons que ta table soit comment ça
id-download
ID = 10 ( pour l'exemple )
download = un INT
dés qu'une personne clique tu fait ça update tatable set tacolonne = tacolonne+1 where id = 10 et voila tu as un compteur
Si tu n'as pas trop compris je peux te faire ça avec une table x)
Nobodief Le 19 avril 2016 à 13:05 (Édité le 19 avril 2016 à 13:05)
$bdd->query('UPDATE tabase SET download=download+1 WHERE id = ?');
Dwardower Le 19 avril 2016 à 14:48 (Édité le 1 janvier 1970 à 01:00)
download = un INTPetite remarque 😋
download = decimal
un int est plus destiné à l’indexions des données alors que décimal lui est fait pour ce genre de choses 😉
Je ne dis pas que ce n'est pas possible de mettre un int mais que decimal est fait pour ça dans les bdd 😉
Florian Le 19 avril 2016 à 15:04 (Édité le 1 janvier 1970 à 01:00)
Dwardower Le 19 avril 2016 à 15:06 (Édité le 1 janvier 1970 à 01:00)
jeannot_gates Le 19 avril 2016 à 15:20 (Édité le 1 janvier 1970 à 01:00)
[/url]
Florian Le 19 avril 2016 à 15:54 (Édité le 1 janvier 1970 à 01:00)
jeannot_gates Le 19 avril 2016 à 16:43 (Édité le 19 avril 2016 à 16:52)
-- Création de la table : 'downloads_files'CREATE TABLE downloads_files (
filename VARCHAR(255) NOT NULL, -- je suppose que chaque fichier est unique ;o)
downloaded INT(5) NOT NULL DEFAULT 0, -- par défaut, téléchargé 0 fois
PRIMARY KEY(filename)
) Type = MyISAM;
j'espere que c'est suffisant ?
Florian Le 19 avril 2016 à 16:58 (Édité le 1 janvier 1970 à 01:00)
$nbrdevue = $bdd->query('UPDATE downloads_files SET downloaded=downloaded+1 WHERE filename = ?');
$nbrdevue->execute(array($filename));
Imaginons que en haut tu récup le nom du download est $filename et que ta config ou y'a la connexion a la BDD est nomée $bdd jeannot_gates Le 19 avril 2016 à 17:15 (Édité le 1 janvier 1970 à 01:00)
$filesdir = '../documents/fichiers/'; // le chemin relatif où sont stockés les fichiers (si pas mis dans la base)
// Récupération du fichier passé en paramètre
$filename = (isset($_GET['f']));
if ($filename != '') // si la variable est non vide
{
on vérifie que le fichier existe bien
if ((file_exists($filesdir . $filename)) && (is_file($filesdir . $filename)))
{
// Le fichier existe bien : on va incrémenter son compteur de téléchargements
$req_augmenterdownload = "UPDATE downloads_files
SET
downloaded = (downloaded+1)
WHERE
filename='".$filename."';";
// maintenant on exécute la requête
$req->query($req_augmenterdownload) ;
// requête effectuée : on envoie le fichier
header("Location: ".$filesdir . $filename);
};
};
jeannot_gates Le 19 avril 2016 à 17:36 (Édité le 1 janvier 1970 à 01:00)