communauté francophone de joueurs sims
 
AccueilAccueil  Le site  Chaine You Tube  S'enregistrerS'enregistrer  ConnexionConnexion  FAQFAQ  RechercherRechercher  

Partagez | 
 

 [Intermédiaire] Créer un compteur pour ses téléchargements

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Boulet de la toile
avatar
vlana
Boulet de la toile
Féminin Date d'inscription : 18/10/2009
Age : 52
Localisation : Sur Syl, une lointaine planète

MessageSujet: [Intermédiaire] Créer un compteur pour ses téléchargements   Sam 31 Oct 2009, 15:24

Problématique :

- Compter le nombre de fois où une création a été téléchargée.
- Avoir accès à ces compteurs via une page personnelle, protégée par un mot de passe.


Besoin :

-Avoir un hébergeur qui vous propose une base de données SQL, ce qui, en réalité, nécessite presque toujours d'avoir un hébergement payant, car la plupart du temps les gratuits ne le proposent pas.
-Avoir un hébergement avec PhpMyAdmin (pour gérer les bases de données)
-Avoir des pages en PHP et connaitre un peu le PHP pour suivre ce tutoriel.


Précisions :

- J'ai essayé de rendre ce tutoriel le plus clair et le plus simple possible. N'hésitez pas à me poser des questions ou à souligner des points qui vous paraissent étranges afin que je puisse l'améliorer.
- N'hésitez pas non plus à me signaler mes fautes d'orthographe ! Laughing


Une base de données, qu'est-ce que c'est ?

Pour tous ceux et celles qui savent déjà ce qu'est une base de données, vous pouvez passez cette section, car ici, je ne parle que des fondamentaux.

Si vous connaissez un peu excel (ou les tableurs en général), vous ne serez pas dépaysé par les bases de données, car visuellement, il y a quelques ressemblances.

Le but d'une base de données (BDD pour les intimes) est de conserver et classifier des données dans une structure définie par plusieurs champs. Un exemple concret va vous permettre de mieux comprendre. Imaginez que nous devions créer une base de données pour le cinéma et que nous voulions répertorier des films. Qu'est-ce qui peut caractériser un film ? Son titre bien sûr, son réalisateur, son année de distribution, le pays dans lequel il a été fait, etc... Il existe beaucoup d'attributs que nous pourrions donner à chaque film. Eh bien, chaque attribut est un champ dans une table de la base de données.

Dans notre exemple, nous allons avoir une table que nous allons appeler films. Cette table va regrouper tous les attributs dont nous avons besoin pour caractériser un film. Nous aurons donc dans cette table un champ titre (du texte), un champ realisateur (du texte), un champ annee (un nombre entier) et un champ pays (du texte). À noter que j'ai volontairement enlevé les accents ; le nom d'un champ doit éviter les accents. Les espaces sont autorisés, mais attention ils demandent alors des précautions pour éviter les erreurs. Au début, je vous propose donc d'éviter à la fois les accents ET les espaces dans les noms que nous allons donner à ces champs.

Maintenant que nous avons notre structure, nous allons la remplir d'informations. Exemple :

Enregistrement 1 : titre="La guerre des étoiles" realisateur="Georges Lucas" annee="1977" pays="USA"
Enregistrement 2 : titre="Le seigneur des anneaux : la communauté de l'anneau" realisateur="Peter Jackson" annee="2001" pays="Nouvelle Zélande"

Et ainsi de suite, nous pourrions avoir autant d'enregistrements qu'il y a eu de films dans le monde, depuis le début du cinéma. Cela pourrait faire une sacré grosse base de données !

Que pouvons-nous faire avec cela maintenant ? Eh bien, nous pouvons récupérer des informations. Par exemple, nous pouvons savoir combien de films sont sortis au cinéma dans le monde pour une année donnée en filtrant sur le champ annee. Nous pouvons savoir combien de films sont sortis pour une année donnée ET pour un pays donné en filtrant par le champ annee et par le champ pays.

On peut obtenir ainsi beaucoup d'informations en sélectionnant les enregistrements par les champs. Je ne vous en dirais pas beaucoup plus pour le moment, car ça commencerait à devenir un peu compliqué.

Avant de terminer ce chapitre, il faut quand même que vous sachiez qu'en général, il n'y a pas qu'une seule table dans une base de données. Là nous avons créé une table sur les films, mais nous pourrions ajouter une table sur les réalisateurs, une table sur les acteurs et ainsi de suite, pour créer une base de données sur le thème du cinéma. Dans la table acteurs, nous pourrions mettre comme champ nom, prenom, annee-de-naissance (à la place des espaces, j'utilise des - ou des _, ce qui évite les problèmes) et finalement le pays.

Il est possible de lier ces différentes tables entre elle, en utilisant des champs communs. Je ne vous donnerais pas plus de détails pour le moment, mais lier la table films et la table acteurs, permettrait par exemple de savoir qu'elles ont été les films tournés par un acteur donné, pendant une période donnée.

En résumé les mots important à retenir sont :
- Une base de données (BDD) contient plusieurs tables.
- Une table possède plusieurs champs et contient des enregistrements


La base de données de notre site

Dans notre cas, de quoi avons-nous besoin ? D'une table que nous allons appeler sims-downloads (bah oui, j'ai la mauvaise habitude de mettre beaucoup de choses en anglais quand je programme !). Et qu'avons-nous besoin de mettre là-dedans ? Le nom de chaque création que nous avons mis en téléchargement, ce sera donc un champ texte, et le nombre de fois où cette création a été téléchargée, ce sera un nombre entier. Soit : nom_fichier et nb_downloads. Essayez toujours de mettre des noms qui vous parlent.

N'avons-nous besoin que de ces informations ? En théorie, oui. Par contre, sachez que les bases de données apprécient une information supplémentaire. Elle est parfois appelée la clé ou encore l'index. Cette clé qui doit être unique pour chaque enregistrement permet à la base de données de mieux gérer ses enregistrements. Elle n'est pas nécessaire, mais fortement recommandée, donc nous allons en mettre une.

En résumé, dans la base de donnée de notre site, nous allons avoir :
- une table sims-downloads
- cette table contient les champs id (clé unique en nombre entier), nom_fichier et nb_downloads.

Voici pour la théorie. Passons maintenant à la pratique !
Revenir en haut Aller en bas
http://www.sims3.vlana.fr/
Boulet de la toile
avatar
vlana
Boulet de la toile
Féminin Date d'inscription : 18/10/2009
Age : 52
Localisation : Sur Syl, une lointaine planète

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Sam 31 Oct 2009, 15:25

PhpMyAdmin

Beaucoup d'hébergeurs utilisent PhpMyAdmin pour gérer les bases de données. Je n'ai jamais eu à utiliser d'autres logiciels, donc, je vais me contenter de parler de celui-ci. Je ne peux également pas vous donner de conseils sur comment accéder à PhpMyAdmin, cela dépend de votre hébergeur qui doit vous dire comment faire, en vous donnant aussi un login et un mot de passe, qui est parfois le même que celui pour accéder à votre compte.

PhpMyAdmin permet d'ajouter de nouvelles tables à votre base de données, d'ajouter des champs, de les modifier, de les supprimer, d'exporter vos données (en texte ou pour excel) ou d'en importer, etc...

Voici, par exemple, ce à quoi ressemble PhpMyAdmin.



J'ai volontairement mis du noir sur certaines parties pour éviter de diffuser trop d'informations. Sachez que pour les petits futés, une base de données est tout à fait piratable. Gardez bien en tête qu'il faut faire un peu attention à la sécurité de votre base de données.

En tout cas, vous pouvez constater que j'ai 17 tables dans ma BDD, dont une qui gère les sites inscrits dans mon annuaire et une autre qui contient les messages du livre d'or.

En bas de l'écran, vous avez un message disant "créer une nouvelle table sur la base". C'est cela que nous allons faire.
Dans "Nom", nous allons mettre sims-downloads, le nom de notre table. Dans "Nombre de champs", nous allons mettre 3. Cliquez ensuite sur le bouton "Executer".

On va maintenant vous demander quels sont les trois champs de cette base de données et quelles genres d'informations vous souhaitez mettre dedans ?

Commençons par la clé unique. Le nom du champ est id, son type INT (nombre entier), Taille/Valeurs laissez vide, Défaut laissez "aucune", passez à attribut et mettez UNSIGNED (non signé, ce qui donnera uniquement des nombres entiers positifs) et le plus important, dans index choisissez PRIMARY (clé primaire), puis cochez A.I (auto increment). Ainsi votre clé primaire va s'auto-incrémenter à chaquer nouvel enregistrement, sans que vous ayez à intervenir. Vous pouvez ensuite mettre un commentaire pour ce champ si avez peur d'oublier ce à quoi il correspond.



Passons à la suite, le nom des fichiers et le compteur des téléchargements. Remplissez les cases, comme je les ai mises. Sachez que le type VARCHAR correspond à du texte et qu'on ne peut utiliser ce type que si le texte en question possède moins de 255 caractères. S'il en possède plus, il faut utiliser un autre type. Dans notre cas, je pense (à moins que vos noms de fichiers soient très longs) que nous n'aurons besoin que de 150 caractères maximum. C'est donc pour cela que j'ai mis dans Taille/Valeurs 150. Pour ce type particulier, cela correspond au nombre maximum de caractères que je souhaite avoir. Si par malheur, j'ai un nom de fichier supérieur à 150, alors dans la base de données, il sera tronqué. Vérifiez bien que, de votre côté et suivant vos noms de fichier, ce chiffre est correct.

Pour le dernier champ, nous mettons qu'il s'agit d'un INT, et pour défaut nous mettons "Tel que défini", puis "0". Ainsi, à la création d'un nouvel enregistrement, votre nombre de téléchargement va automatiquement démarrer à zéro.

Faites ensuite "sauvegarder" et vous voici avec une table de base de données !


Organisation des répertoires

J'essaye toujours d'organiser mes répertoires pour qu'au fur et à mesure que le site grandit, je ne sois pas perdue avec un mélange de tout et de n'importe quoi dans un seul répertoire fourre-tout.

Voici ma structure :
racine du site>downloads>sims3-eyeliner : sous-répertoire où sont les fichiers à télécharger consacrés aux eyeliners.
racine du site>downloads>sims3-eyeshadow : sous-répertoire où sont les fichiers à télécharger consacrés aux ombres à paupières

etc... il y a un sous-répertoire par type d'objet à télécharger. Ce sont dans ces répertoires que sont les fichiers .zip ou .rar à télécharger.

racine du site>fr-downloads : sous-répertoire où je mets les pages du site (en français, car j'ai une section pour la version anglaise). Ce sont elles qui s'affichent aux visiteurs et proposent l'image et l'explication de chaque création, ainsi qu'un lien pour le téléchargement lui-même.

Ce n'est peut-être pas la solution la plus efficace pour télécharger, mais pour ma part, cela me permet de ne pas mélanger les choses. Pour le moment, je duplique le fichier qui va nous permettre de faire le téléchargement dans chaque sous répertoire racine du site>downloads>sims3-eyeliner, puis racine du site>downloads>sims3-eyeshadow, etc... mais je vais repenser un peu le code pour éviter cela et n'avoir plus qu'un seul fichier qui permette le téléchargement quelque soit le sous-répertoire. La base devrait rester identique, donc pour le moment, nous allons travailler sur ce qui existe.


Incrémenter le compteur

Quoi qu'il en soit, nous avons créé notre table de base de données et nos répertoires, maintenant, il faut utiliser tout ça ! Le PHP nous permet de passer des commandes en SQL ; le SQL étant le langage de programmation de notre base de donnée. Pour incrémenter le compteur de chaque création mise en téléchargement, j'ai une page PHP qui ne sert à rien d'autre qu'à incrémenter le compteur et à fournir le fichier à celui qui le demande. C'est du pur PHP, sans aucune trace de HTML. Mais voici comment je procède en détails :

Dans le répertoire racine du site>fr-download, j'ai toutes mes pages qui proposent les divers téléchargements aux visiteurs. Voici un extrait de la page : racine du site>fr-download>sims3-female-adult-top-004.php

Code:

<tr>
   <td><img class="download" src="../images/downloads/sims3-female-adult-top-0016.jpg" alt="sims3-female-adult-top-0016.jpg téléchargement vêtements jeu Sims 3" /></td>
   <td>
      <h3>Top 0016</h3>
      <p>   Un gilet mi-saison à grosses fleurs bleues.
                      <br/><br/>- Taille fichier .zip : 382ko
         <br/>- Aucune extension de jeu nécessaire - Uniquement le jeu <b>les sims 3</b> de base.
         <br/><br/><a href="../downloads/sims3-female-adult-top/fic_download.php?r_nomfic=sims3-female-adult-top-0016.zip">Télécharger gratuitement ce pack Sims 3</a>
      </p>
   </td>
</tr>

Regardez principalement ceci :
Code:

<a href="../downloads/sims3-female-adult-top/fic_download.php?r_nomfic=sims3-female-adult-top-0016.zip">Télécharger gratuitement ce pack Sims 3</a>

Comme vous le voyez, la balise a va faire appel à la page php fic_download.php qui est dans le répertoire downloads/sims3-female-adult-top, un des fameux sous-répertoire où je mets mes fichiers .zip. Le a va également envoyer une information au PHP par la variable ?r_nomfic. L'information envoyée est le nom du fichier à télécharger, soit sims3-female-adult-top-0016.zip dans notre exemple. Dans les différentes pages où je propose mes téléchargements, il n'y a donc rien de particulier ; ce pourrait même être des pages HTML. N'hésitez pas à regarder les pages de téléchargements de mon site mieux vous rendre compte. Par contre, c'est la page fic_download.php qui est intéressante.

Voici en résumé ce qu'il se passe dans cette page :
1 - Récupération du nom du fichier.
2 - Ouverture de la base de données.
3 - Récupérer le compteur de cette création.
4 - S'il n'y en a pas, créer un nouvel enregistrement pour cette création
5 - Incrémenter le compteur de 1
6 - Mettre à jour le compteur de la base de donnée.
7 - Fermer la base de donnée.
8 - Proposer le téléchargement de la création au visiteur.

Dans un premier temps, voici le code brut de cette page

Code:

<?php
// 1 - Récupération du nom du fichier.
$fic_nom=strtolower(htmlentities($_REQUEST['r_nomfic'], ENT_QUOTES));

// 2 - Ouverture de la base de données.
mysql_connect('nom_serveur', 'login-bdd', 'motdepasse-bdd') or die(mysql_error());
mysql_select_db('nom-de-votre-bdd') or die(mysql_error());

// 3 - Récupérer le compteur de cette création.
$cmd_sql = 'SELECT * FROM sims-downloads WHERE nom_fichier="'.$fic_nom.'" ';
$reponse = mysql_query($cmd_sql);
$donnees = mysql_fetch_array($reponse);

// 4 - S'il n'y en a pas, créer un nouvel enregistrement pour cette création
$existe = intval($donnees['id']);
if ($existe==0)
{
   $cmd_sql = 'INSERT INTO sims-downloads (id , nom_fichier , nb_downloads ) VALUES (NULL , "'.$fic_nom.'", 0)';
   mysql_query($cmd_sql) or die(mysql_error());
}

// 5 - Incrémenter le compteur de 1
$compteur = intval($donnees['nb_downloads']);
$compteur++;

// 6 - Mettre à jour le compteur de la base de donnée.
$cmd_sql = 'UPDATE sims-downloads SET nb_downloads='.$compteur.' WHERE nom_fichier="'.$fic_nom.'" ';
mysql_query($cmd_sql) or die(mysql_error());

// 7 - Fermer la base de donnée.
mysql_close();
   
// 8 - Proposer le téléchargement de la création au visiteur.
header("Content-Type: application/x-zip");
header("Content-Disposition: attachment; filename=$fic_nom");
readfile($fic_nom);
?>

Passons la page en détails maintenant !

1 - Récupération du nom du fichier
Il est important de mettre htmlentities pour éviter une partie des tentatives de hack de votre BDD

$fic_nom=strtolower(htmlentities($_REQUEST['r_nomfic'], ENT_QUOTES));


2 - Ouverture de la base de données.
Les informations suivantes doivent vous être fournies par votre hébergeur.
nom_serveur : nom du serveur de votre hébergeur.
login-bdd : votre login pour accéder à votre bdd (dans certains cas, c'est le même que pour l'accès à votre compte)
motdepasse-bdd : votre mot de passe pour accéder à votre bdd (dans certains cas, c'est le même que pour l'accès à votre compte)
nom-de-votre-bdd : le nom de votre base de données. En général, il est également donné par votre hébergeur. Ce nom apparait dans PhpMyAdmin en haut de la page sur la même ligne que le nom de serveur.

Si ces commandes rencontrent un problème, elles vous enverront un message d'erreur.

mysql_connect('nom_serveur', 'login-bdd', 'motdepasse-bdd') or die(mysql_error());
mysql_select_db('nom-de-votre-bdd') or die(mysql_error());


3 - Récupérer le compteur de cette création.
C'est là que le SQL commence à intervenir. Ce langage qui possède peu de mots de commande permet entre autre de récupérer des informations de la base de données, de les modifier, de les supprimer ou d'en ajouter de nouvelles.

Prenons la commande qui nous intéresse :

SELECT * FROM sims-downloads WHERE nom_fichier="'.$fic_nom.'"


Voici ce qu'elle signifie en français :
Je veux récupérer toutes les informations
SELECT *
de la table que j'ai créé tout à l'heure dans PhpMyAdmin et dans lequel j'ai mes compteurs
FROM sims-downloads
mais uniquement pour ma création $fic_nom, puisque c'est celle-ci que mon visiteur veut télécharger.
WHERE nom_fichier="'.$fic_nom.'"

Ce qui donne une commande SQL qui est à fournir au PHP qui va l'exécuter et bien entendu, récupérer une réponse puisque c'est cela qui nous intéresse. Soit :
$reponse = mysql_query($cmd_sql);
Il nous faut ensuite formater cette réponse reçue pour qu'elle puisse être compréhensible par le PHP.
Soit :
$donnees = mysql_fetch_array($reponse);
Ce qui donne les trois lignes suivantes :

$cmd_sql = 'SELECT * FROM sims-downloads WHERE nom_fichier="'.$fic_nom.'" ';
$reponse = mysql_query($cmd_sql);
$donnees = mysql_fetch_array($reponse);


Pour ceux qui connaissent un peu les commandes PHP et SQL, dans ce cas particulier une création en téléchargement = un enregistrement dans la BDD, donc inutile de mettre
while ($donnees = mysql_fetch_array($reponse))
{

}

4 - Si le compteur n'existe pas pour cette création, il faut créer un nouvel enregistrement dans la BDD
Si vous venez juste de créer votre BDD, vous n'aurez aucun enregistrement dedans, donc pas de compteur Par contre, au bout du second téléchargement d'une création particulière, vous allez avoir un enregistrement pour cette création. Il faudra alors simplement se contenter d'incrémenter votre compteur. Pour cela il faut vérifier que l'enregistrement de votre création existe en utilisant la clé unique id. Cette clé est un nombre forcément supérieur à zéro.

Pour savoir ce qu'il y a dans les différents champs de votre table , utilisez la variable PHP $donnees, qui a été utilisée pour récupérer les informations de la commande SQL. Le mysql_fetch_array a transformé ces données de la BDD en variable PHP de type tableau.

Ainsi, si vous voulez avoir accès à l'id de l'enregistrement, il vous suffit de faire appel à
$donnees['id']. Si vous voulez avoir le nom du fichier $donnees['nom_fichier'] et le compteur $donnees['nb_downloads']

Entre les crochets de $donnees, mettez les noms exacts des champs de votre table sims-downloads

Si vous avez essayé de récupérer un enregistrement de la BDD qui n'existe pas encore, $donnees['id'], $donnees['nom_fichier'] et $donnees['nb_downloads'] seront vides. Cela vous indiquera qu'il faut créer un nouvel enregistrement pour votre création. Pour faire mon test j'utilise intval qui va transformer $donnees['id'] en variable numérique. Si elle est à vide, cela va donner zéro, sinon, cela ne changera rien.


$existe = intval($donnees['id']);
if ($existe==0)
{

Puisque mon numéro d'enregistrement est vide (à zéro), alors je dois insérer un nouvel enregistrement dans ma table sims-downloads . L'id est géré automatiquement on mets NULL, puis on mets le nom de notre fichier entre guillemet car c'est du texte, puis on mets un nombre de téléchargement à zéro.

$cmd_sql = 'INSERT INTO sims-downloads (id , nom_fichier , nb_downloads ) VALUES (NULL , "'.$fic_nom.'", 0)';

Ce qui veut dire en français :
Insère dans ma table sims-downloads
INSERT INTO sims-downloads
les champs id , nom_fichier et nb_downloads
(id , nom_fichier , nb_downloads )
qui vont avoir pour valeur
VALUES (NULL , "'.$fic_nom.'", 0)';

On passe cette commande SQL et on affiche un message d'erreur si ça s'est mal passé.

mysql_query($cmd_sql) or die(mysql_error());
}


5 - Incrémenter le compteur de 1
On récupére la variable compteur, si c'est un nouvel enregistrement, elle est à vide et le intval va donc renvoyer zéro.

$compteur = intval($donnees['nb_downloads']);

On ajoute 1 !

$compteur++;


6 - Mettre à jour le compteur de la base de donnée.
On va signaler à la BDD que le compteur de l'enregistrement de notre création a changé et qu'il faut la mettre à jour.
UPDATE sims-downloads : mets à jour la table sims-downloads
SET nb_downloads='.$compteur.' : assigne la valeur que je viens de calculer.
WHERE nom_fichier="'.$fic_nom.'" '; : et cela uniquement pour le fichier que mon visiteur veut télécharger.


$cmd_sql = 'UPDATE sims-downloads SET nb_downloads='.$compteur.' WHERE nom_fichier="'.$fic_nom.'" ';
mysql_query($cmd_sql) or die(mysql_error());


7 - Fermer la base de donnée.
On n'a plus besoin de la BDD, comme on l'a ouvert, il faut la fermer.


mysql_close();


8 - Proposer le téléchargement de la création au visiteur.
Ces commandes vont récupérer le fichier et ouvrir une fenêtre pour le téléchargement.


header("Content-Type: application/x-zip");
header("Content-Disposition: attachment; filename=$fic_nom");
readfile($fic_nom);

La deuxième étape de notre travail est terminée, les compteurs vont s'incrémenter à chaque téléchargement.


Dernière édition par vlana le Lun 02 Nov 2009, 15:46, édité 3 fois
Revenir en haut Aller en bas
http://www.sims3.vlana.fr/
Boulet de la toile
avatar
vlana
Boulet de la toile
Féminin Date d'inscription : 18/10/2009
Age : 52
Localisation : Sur Syl, une lointaine planète

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Sam 31 Oct 2009, 15:25

Notre page personnelle protégée !

Il existe plusieurs moyens de protéger une page ou un répertoire entier. On peut même en utiliser plusieurs en même temps pour doubler les protections. Ici, je ne vous présenterais qu'une méthode simple, mais efficace qui utilise uniquement le php

Au début de votre page à protéger, mettez le code php suivant :
Bien sûr mettez à la place de mon-login-perso et mon-motdepasse-perso, les vraies valeurs que vous souhaitez avoir.
C'est à vous de les choisir et n'hésitez pas à les changer de temps à autre pour brouiller les pistes des hackeurs éventuels.


Code:
<?php
if ($_SERVER['PHP_AUTH_USER']!="mon-login-perso" || $_SERVER['PHP_AUTH_PW']!="mon-motdepasse-perso")    
{
   header('WWW-Authenticate: Basic realm="Zone protégée"');
   header("HTTP/1.0 401 Unauthorized");
   exit(0);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
Ici suite habituelle de votre page


Ceci va ouvrir une fenêtre qui va vous demander un login et un mot de passe. Elle refusera de vous afficher la page si vous n'entrez pas les bonnes valeurs.




L'affichage des différents compteurs


Pour cela, nous allons mixer le HTML, le PHP et le SQL ! Cool, non ? Ne vous inquiétez pas, c'est plus simple que ça y parait !
Dans un premier temps, nous allons récupérer les données de la base de données. Dans notre page, nous allons donc ouvrir une section PHP, puis mettre les informations dans une table


Code:

<H1>Compteurs des téléchargements</H1>

<?php
//   Ouverture de la BDD
   mysql_connect('nom_serveur', 'login-bdd', 'motdepasse-bdd') or die(mysql_error());
   mysql_select_db('nom-de-votre-bdd') or die(mysql_error());
//   Récupération de TOUTES les données de la table sims-downloads
//     sans aucune condition (pas de WHERE)
   $cmd_sql = 'SELECT * FROM sims-downloads';
   $reponse = mysql_query($cmd_sql);
?>

<table>
   <tr>
      <th>Nom du fichier</th>
      <th>Compteur</th>
   </tr>
<?php
//   Nous avons plusieurs créations en téléchargements, donc nous allons crééer autant de lignes que nécessaire.
   while ($donnees = mysql_fetch_array($reponse))
   {
?>   
   <tr>
      <td><?php echo $donnees['nom_fichier']; ?></td>
      <td><?php echo $donnees['nb_downloads']; ?></td>
   </tr>
<?php
   }
?>   
</table>

<?php
//   On n'oublie pas de fermer la BDD
   mysql_close();
?>


Et voilà ! Vous avez une vision globale du nombre de téléchargements faits pour chacune de vos créations.

Bien sûr, ceci est une base et on peut aller beaucoup plus loin et ajouter des options supplémentaires, comme les dates de téléchargements par exemple. Je ferais d'autres tutoriels qui prendront celui-ci comme base.

J'espère que ce tutoriel reste assez compréhensible pour les novices. C'est le tout premier que je fais en programmation et j'ai du mal à savoir quels sont les points qui peuvent vous paraitre plus difficiles que d'autres. N'hésitez donc pas à me le signaler.  Very Happy


MODE D'EMPLOI

N'hésitez pas à remercier l'auteur de ce tutoriel ou à faire partager votre expérience personnelle. Si vous avez créé quelque chose en suivant le tuto pourquoi pas la poster afin de la montrer à l'auteur

-----------------------------------------

Pour d'éventuelles questions, c'est par ici et si vous souhaitez en apprendre plus sur le sujet, rendez-vous dans la salle travaux pratiques

Bonne journée

Revenir en haut Aller en bas
http://www.sims3.vlana.fr/
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Sam 31 Oct 2009, 17:17

Merci Vlana pour ce tuto.

En première lecture sachant que je n'y connais rien du tout: niveau débutant

J'ai parfaitement compris ton explication de la base de donnée et la partie création de la base de son site.

A la première lecture je le rappelle! mon cerveau fume sur le script pour créer le compteur.
Je viens de comprendre à l'instant que tu détailles et ensuite donne le code c'est pour dire albino
Je vais imprimer cette partie et après je viens t'embêter si besoin

Encore merci Vlana


Spoiler:
 
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Boulet de la toile
avatar
vlana
Boulet de la toile
Féminin Date d'inscription : 18/10/2009
Age : 52
Localisation : Sur Syl, une lointaine planète

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Sam 31 Oct 2009, 18:38

N'hésites pas ! Il y a beaucoup de choses à assimiler. Ce n'est pas évident pour débuter. Je peux sûrement améliorer certaines explications. Wink
Revenir en haut Aller en bas
http://www.sims3.vlana.fr/
As de l'acrylique
avatar
Cynimich
As de l'acrylique
Masculin Date d'inscription : 12/10/2009
Age : 21
Localisation : Québec

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Dim 01 Nov 2009, 01:26

Merci ! Ce tuto me sera bien utile Smile
Revenir en haut Aller en bas
Ange gardien
avatar
idjya
Ange gardien
Féminin Date d'inscription : 05/10/2009
Age : 38
Localisation : Cholet

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Dim 01 Nov 2009, 22:03

Moi je suis une quiche en php... Je pige que dalle! Mais merci pour le tuto, ça me sera peut-être utile si un jour je m'y colle!

Et sinon, tu parles une autre langue que le chinois? Very Happy cheers
Revenir en haut Aller en bas
http://idjya.eklablog.com
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Lun 02 Nov 2009, 09:43

Alors j'ai plusieurs question et remarques car je n'arrive pas à extrapoler depuis ton exemple ce que je dois faire pour mon site qui a sa propre organisation.

Remarque:

1. Mettre le code entier en premier en indiquant partie 1 à 8 puis expliquer les différentes étapes.
2. Dans la section 3 du code présenté dans son ensemble, remplacer FROM sims_downloads par FROM 'nom-de-votre-bbd'

Questions:

1. Tout ce code, je doit le mettre dans une autre page située dans mon dossier de téléchargement c'est ça?

2. Pour ma part j'ai un dossier Galerie qui est subdivisé en sous catégories correspondants aux rubriques et encore à l'intérieur un dossier qui porte le nom de la collection.
Pour les maisons j'ai un dossier maison avec des sous dossier correspondant au nom, etc...
Puis-je avoir une seule page php qui sera au niveau de ma racine où alors je dois avoir une page dans chaque dossier?
Comment faire appel à ces fichiers qui sont classés dans ces dossiers spécifiques?

Une exemple pour que j'arrive à me projeter:
>Galerie>Expo>Monet>peinture.rar


Spoiler:
 
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Boulet de la toile
avatar
vlana
Boulet de la toile
Féminin Date d'inscription : 18/10/2009
Age : 52
Localisation : Sur Syl, une lointaine planète

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Lun 02 Nov 2009, 14:37

idjya a écrit:
Et sinon, tu parles une autre langue que le chinois? Very Happy cheers

Oui ! VC++, c'est encore pire ! Laughing

Fuyaya a écrit:
1. Mettre le code entier en premier en indiquant partie 1 à 8 puis expliquer les différentes étapes.

Oui, je vais ré-organiser ça pour que ce soit plus claire.

Fuyaya a écrit:
2. Dans la section 3 du code présenté dans son ensemble, remplacer FROM sims_downloads par FROM 'nom-de-votre-bbd'

Ce n'est pas 'nom-de-votre-bdd', mais plutôt "nom-de-votre-table". Je vais ré-écrire cette section pour mieux l'expliquer.

Fuyaya a écrit:
1. Tout ce code, je doit le mettre dans une autre page située dans mon dossier de téléchargement c'est ça?

Mets le code là où sont tes créations à télécharger. Si tu souhaites mettre tes créations dans un répertoire dédié, alors mets le code à cet endroit. Je vais aussi ajouter une explication supplémentaire là-dessus.

Fuyaya a écrit:

2. Pour ma part j'ai un dossier Galerie qui est subdivisé en sous catégories correspondants aux rubriques et encore à l'intérieur un dossier qui porte le nom de la collection.
Pour les maisons j'ai un dossier maison avec des sous dossier correspondant au nom, etc...
Puis-je avoir une seule page php qui sera au niveau de ma racine où alors je dois avoir une page dans chaque dossier?
Comment faire appel à ces fichiers qui sont classés dans ces dossiers spécifiques?

Une exemple pour que j'arrive à me projeter:
>Galerie>Expo>Monet>peinture.rar

Effectivement, il va falloir une page php par sous-dossier. Je vais quand même réfléchir s'il y a moyen de faire plus simple et de ne faire qu'une page à la racine. En attendant, je modifie un peu le tutoriel.

***edit un peu plus tard : J'ai modifié un peu les explications, ajouté une section sur les répertoires et légèrement modifié les couleurs de certaines explications pour mieux faire ressortir le code. J'espère que c'est un peu mieux.
Revenir en haut Aller en bas
http://www.sims3.vlana.fr/
As de l'acrylique
avatar
lolitaitu
As de l'acrylique
Féminin Date d'inscription : 11/07/2010
Age : 22
Localisation : Marseille

MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   Mar 27 Juil 2010, 12:38

Je trouve ton tutoriel très clair,il explique bien (même si je n'y comprend rien à ce genre de chose). J'ai essayé de lire sans décroché et j'avoue que pour une inculte dans ce genre de chose comme moi, on peut facilement bien débuter grâce à ton tuto. Merci ^^
Revenir en haut Aller en bas
Contenu sponsorisé


MessageSujet: Re: [Intermédiaire] Créer un compteur pour ses téléchargements   

Revenir en haut Aller en bas
 
[Intermédiaire] Créer un compteur pour ses téléchargements
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Sims Artists :: Apprentissage :: Informatique et Internet :: PHP/MySQL-
Sauter vers: