Rechercher : dans
Par :

Classement PHP

Dernière réponse le 1 jan 2008 à 13:07:34 alex, le 2 jan 2002 à 12:42:32 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Classement PHP » dans :
PHP - Les classes VoirLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...
UML - Modélisation des classes et objets VoirModélisation d'un objet La modélisation objet consiste à créer une représentation abstraite, sous forme d'objets, d'entités ayant une existence matérielle (arbre, personne, téléphone, ...) ou bien virtuelle (sécurité sociale, compte bancaire,...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...

1

Bobinours, le 2 jan 2002 à 14:16:59
  • +1

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 

Répondre à Bobinours

2

alex, le 2 jan 2002 à 14:20:10
  • +1

Oui mais çà n'affiche pas les téléchargemtns dans l'ordre croissant. il n'y pas de classement là dedans...

Répondre à alex

3

Tittom, le 2 jan 2002 à 16:43:09
  • +1

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)

Répondre à Tittom

4

alex, le 2 jan 2002 à 17:17:16
  • +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 ???

Répondre à alex

6

Bobinours, le 3 jan 2002 à 12:34:40
  • +1

As tu une base de données ?

-= Bobinours =-

Répondre à Bobinours

5

Bobinours, le 2 jan 2002 à 17:41:19
  • +1

Tittom : T'es bien parti, je te laisse continuer.
;o)

-= Bobinours =-

Répondre à Bobinours

7

bibi675, le 1 jan 2008 à 13:02:45
  • +1

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),
edgar.fournival@hotmail.fr

Répondre à bibi675

8

bibi675, le 1 jan 2008 à 13:04:51
  • +1

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),
edgar.fournival@hotmail.fr

Répondre à bibi675

9

 bibi675, le 1 jan 2008 à 13:07:34

Excusez-moi pour le triple post mais je me suis trompé, le bon mode d'emploi à suivre est le message avant celui-là.

Répondre à bibi675