Classement PHP

Résolu/Fermé
alex - 2 janv. 2002 à 12:42
 bibi675 - 1 janv. 2008 à 13:07
Bonjour,

j'utilise un compteur de téléchargement sur mon site. et je voufrais créer une liste des 5 logiciels les plus téléchargés (dans l'ordre croissant)...qui peut m'aider...
merci
A voir également:

6 réponses

Salut,
Si tu ne sais pas programmer en PHP et si tu n'a pas de base de donnée alors t'es mal barré mais si tu as une base de donnée, je vais t'expliquer comment faire :

1. Commence par aller sur le site de ton hebergeur, connecte-toi sur l'espace client, va dans la configuration de la base de données (normalement c'est MySQL) puis récupère le nom d'utilisateur, le mot de passe, l'adresse de la base et le nom de la base. Note le tout sur un petit papier.

2. Reste sur la page de configuration de MySQL puis va dans le gestionnaire (PhpMyAdmin normalement) puis dans le menu de navigation à gauche séléctionne le nom de la base (que tu as écrit sur ton papier).

3. Dans le menu en haut cette fois, va dans le module 'SQL' puis tape :
CREATE TABLE `classement` (
`id` INT NOT NULL AUTO INCREMENT,
`nom` VARCHAR( 100 ) NOT NULL ,
`clique` INT NOT NULL ,
`url` VARCHAR( 100 ) NOT NULL
) ENGINE = innodb;


4. Retourne maintenant dans le module SQL puis tape :
INSERT INTO classement 
VALUES(NULL, "nom_de_ton_logiciel", 0, "url de ton fichier à telecharger avec chemin complet : [http://]");

(modifie le mot 'nom de ton logiciel' par... bon je pense pas que je vais m'étendre sur ça ^^).

5. Créé une page PHP (que tu va mettre sur ton FTP et qu'on appelera classement.php) et rentre dedans :
-----------------------------------------------------------------------------------------------------
<?php
$dbhost = "rentre_ici_l'adresse_de_ta_base";
$dbuname = "rentre_ici_le_nom_d_utilisateur";
$dbpass = "rentre_ici_le_mot_de_passe";
$dbname = "rentre_ici_le_nom_de_la_base";
mysql_connect($dbhost, $dbuname, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

if (! is_numeric($_GET['id']) = 1) {
echo "Erreur !<br>Le paramêtre fourni (identifiant du logiciel) n'est pas un nombre.";
exit;
}

switch ($_GET['action']) {
case "clique" :
$sql = "UPDATE classement SET clique = clique + 1 WHERE id = ".$_GET['id'];
mysql_query($sql) or die(mysql_error());
echo '<script type="text/javascript">';
echo "<!--";
echo 'window.location = "classement.php?action=download&id='.$_GET['id'].'";';
echo "//-->";
echo "</script>";
break;
case "download" :
$sql = "SELECT url FROM classement WHERE id = ".$_GET['id'];
$run = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_array($run);
echo '<script type="text/javascript">';
echo "<!--";
echo 'window.location = "'.$result['url'].'";';
echo "//-->";
echo "</script>";
break;
case "view" :
$sql = "SELECT id,name,clique FROM classement ORDER BY clique ASC LIMIT 0,5";
$run = mysql_query($sql) or die(mysql_error());
echo "<h1>Top 5 des logiciels les plus téléchargés :</h1><br><ul>";
$i = 0;
while ($result = mysql_fetch_array($run)) {
$i++;
echo "<li><a href=\"classement.php?acion=download&id=".$result['id']."\">".$i.
". ".$result['name']." avec ".$result['clique']." cliques.</a></li>";
}
echo "</ul>";
break;
default :
echo "Erreur !";
exit;
}
?>

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

6. Voila maintenant quand tu veux télécharger un logiciel tu va voir dans ta base, tu récupère l'identifiant qui est associé au nom de ton logiciel et pour le télécharger tu donne aux visiteurs le lien '<a href="classement.php?action=clique&id=identifiant_de_ton_logiciel">Télécharger</a>'. Pour voir le classement tu fait '<a href="classement.php?action=view">Voir le classement</a>'.

Voila, je l'ai pas tésté mais logiquement ça devrait marcher.

@++
bibi675 (je programme en PHP, MySQL, Liberty BASIC, HTML, CSS, Delphi),
5
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
2 janv. 2002 à 14:16
Regarde le post de alphx : http://www.commentcamarche.com/forum/affich.php3?cat=3&ID=42743&page=1

-= Bobinours =- - - - - - > Bonne année ! - Comme ça c'est 
1
oui mais çà n'affiche pas les téléchargemtns dans l'ordre croissant. il n'y pas de classement là dedans...
1
Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 128
2 janv. 2002 à 16:43
Bonjour,

tu peux faire une requête SQL du type :

select * from telechargements order by nb_clics desc limit 1, 5

... qui aura pour effet de trier la table par nb de clics décroissants, et seuls les 5 premiers enregistrements seront retournés.

-- 
Tittom (ça c'est de la signature)
1
c'est très gentil mais là, je comprends rien...
je dois insérer quoi dans ma page web, à l'endroit où ca doit s'afficher ???
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504 > alex
3 janv. 2002 à 12:34
As tu une base de données ?

-= Bobinours =-
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
2 janv. 2002 à 17:41
Tittom : T'es bien parti, je te laisse continuer.
;o)

-= Bobinours =-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut,
Si tu ne sais pas programmer en PHP et si tu n'a pas de base de donnée alors t'es mal barré mais si tu as une base de donnée, je vais t'expliquer comment faire :

1. Commence par aller sur le site de ton hebergeur, connecte-toi sur l'espace client, va dans la configuration de la base de données (normalement c'est MySQL) puis récupère le nom d'utilisateur, le mot de passe, l'adresse de la base et le nom de la base. Note le tout sur un petit papier.

2. Reste sur la page de configuration de MySQL puis va dans le gestionnaire (PhpMyAdmin normalement) puis dans le menu de navigation à gauche séléctionne le nom de la base (que tu as écrit sur ton papier).

3. Dans le menu en haut cette fois, va dans le module 'SQL' puis tape :
CREATE TABLE `classement` (
`id` INT NOT NULL AUTO INCREMENT,
`nom` VARCHAR( 100 ) NOT NULL ,
`clique` INT NOT NULL ,
`url` VARCHAR( 100 ) NOT NULL

) ENGINE = innodb;

4. Retourne maintenant dans le module SQL puis tape :
INSERT INTO classement 
VALUES(NULL, "nom_de_ton_logiciel", 0, "url de ton fichier à telecharger avec chemin complet : [http://]");

(modifie le mot 'nom de ton logiciel' par... bon je pense pas que je vais m'étendre sur ça ^^).

5. Créé une page PHP (que tu va mettre sur ton FTP et qu'on appelera classement.php) et rentre dedans :
-----------------------------------------------------------------------------------------------------
<?php
$dbhost = "rentre_ici_l'adresse_de_ta_base";
$dbuname = "rentre_ici_le_nom_d_utilisateur";
$dbpass = "rentre_ici_le_mot_de_passe";
$dbname = "rentre_ici_le_nom_de_la_base";
mysql_connect($dbhost, $dbuname, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

if (! is_numeric($_GET['id']) = 1) {
echo "Erreur !<br>Le paramêtre fourni (identifiant du logiciel) n'est pas un nombre.";
exit;
}

switch ($_GET['action']) {
case "clique" :
$sql = "UPDATE classement SET clique = clique + 1 WHERE id = ".$_GET['id'];
mysql_query($sql) or die(mysql_error());
echo '<script type="text/javascript">';
echo "<!--";
echo 'window.location = "classement.php?action=download&id='.$_GET['id'].'";';
echo "//-->";
echo "</script>";
break;
case "download" :
$sql = "SELECT url FROM classement WHERE id = ".$_GET['id'];
$run = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_array($run);
echo '<script type="text/javascript">';
echo "<!--";
echo 'window.location = "'.$result['url'].'";';
echo "//-->";
echo "</script>";
break;
case "view" :
$sql = "SELECT id,name,clique FROM classement ORDER BY clique ASC LIMIT 0,5";
$run = mysql_query($sql) or die(mysql_error());
echo "<h1>Top 5 des logiciels les plus téléchargés :</h1><br><ul>";
$i = 0;
while ($result = mysql_fetch_array($run)) {
$i++;
echo "<li><a href=\"classement.php?acion=download&id=".$result['id']."\">".$i.
". ".$result['name']." avec ".$result['clique']." cliques.</a></li>";
}
echo "</ul>";
break;
default :
echo "Erreur !";
exit;
}
?>

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

6. Voila maintenant quand tu veux télécharger un logiciel tu va voir dans ta base, tu récupère l'identifiant qui est associé au nom de ton logiciel et pour le télécharger tu donne aux visiteurs le lien '<a href="classement.php?action=clique&id=identifiant_de_ton_logiciel">Télécharger</a>'. Pour voir le classement tu fait '<a href="classement.php?action=view">Voir le classement</a>'.

Voila, je l'ai pas tésté mais logiquement ça devrait marcher.

@++
bibi675 (je programme en PHP, MySQL, Liberty BASIC, HTML, CSS, Delphi),
1
Excusez-moi pour le triple post mais je me suis trompé, le bon mode d'emploi à suivre est le message avant celui-là.
0