compteur de téléchargement en php avec la fonction pdo

jeannot_gates

jeannot_gates Le 18 avril 2016 à 19:23 (Édité le 25 janvier 2019 à 17:50)

bonjour primfx c'est jeannot je t'écris depuis le cameroun j'aimerai s'il te plait si tu pouvait nous faire un tuto comment tu nous montre comment faire un compteur de téléchargement c'est un peu urgent. Et j'adore tes tutos continue ainsi et merci pour tous ce que tu fais pour les apprentis webmaster que  nous somme
Florian

Florian Le 18 avril 2016 à 22:59

Humm, je voit pas ou tu as un problème un peu de raisonnement,

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

Nobodief Le 19 avril 2016 à 13:05 (Édité le 19 avril 2016 à 13:05)

Salut, lorsque du souhaite un compteur comme la dit Florian, tu utilise une update en indiquant la valeur actuel+1.
$bdd->query('UPDATE tabase SET download=download+1 WHERE id = ?');
Dwardower

Dwardower Le 19 avril 2016 à 14:48

download = un INT
Petite 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

Florian Le 19 avril 2016 à 15:04

@Dwardower Tu n'as pas tord, mais j'ai fait ça assez vite pour qu'il comprennent comment faire après a lui de faire comme il le veux 😉 
Dwardower

Dwardower Le 19 avril 2016 à 15:06

@Florian oui je suis d'accord 😋
jeannot_gates

jeannot_gates Le 19 avril 2016 à 15:20

bonjour florian si cela ne te dérange pas pourais-tu  s'il te plait envoyer le code complet cela me ferrais beacoup de bien merci d'avence. je voudrais almeliorer les fonctionnalité de mon site qui est pour l'instant un peut laid voici le lien si cela t'interresse [url=http://www.thelifestore.net]thelifestore.net
[/url]
Florian

Florian Le 19 avril 2016 à 15:54

@jeannot_gates Je pourrais avoir un screen de la base de donnée ?
jeannot_gates

jeannot_gates Le 19 avril 2016 à 16:43 (Édité le 19 avril 2016 à 16:52)

voici une comment ce presente ma table
-- 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

Florian Le 19 avril 2016 à 16:58

$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

jeannot_gates Le 19 avril 2016 à 17:15

ja t'envois la base de mon code que j'avais deja fait
$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

jeannot_gates Le 19 avril 2016 à 17:36

je vais réecrire mon code en m'inspirent du tien merci et bonne continuation 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte